Function at 0x47b630
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov edi, ecx
mov ecx, dword [ecx + 0xec]
test ecx, ecx
je 0x47bf8c
mov ebp, dword [edi]
movsx eax, word [ecx + 0x22]
cmp dword [ebp + 0x80], eax
jle 0x47b75a
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
cmp byte [edi + 0xd0], 1
ja 0x47b683
cmp esi, 2
jb 0x47b683
movzx eax, byte [edx]
cmp byte [eax + 0x52aaeb], 0
js 0x47b76f
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x44]
cmp ebx, 0x10
mov dword [esp + 8], ebp
mov dword [esp + 0x24], edi
jb 0x47b9a6
test esi, esi
je 0x47b9af
movzx ecx, byte [esi + ebx - 6]
xor eax, eax
test ecx, ecx
je 0x47b7a4
mov edx, ecx
and dl, 0xdf
cmp dl, 0x41
jne 0x47b7ab
movzx ecx, byte [esi + ebx - 5]
test ecx, ecx
je 0x47b7b8
mov edx, ecx
and dl, 0xdf
cmp dl, 0x4c
jne 0x47b7bf
movzx ecx, byte [esi + ebx - 4]
test ecx, ecx
je 0x47b7cc
mov edx, ecx
and dl, 0xdf
cmp dl, 0x57
jne 0x47b7d3
movzx ecx, byte [esi + ebx - 3]
test ecx, ecx
je 0x47b7e0
mov edx, ecx
and dl, 0xdf
cmp dl, 0x41
jne 0x47b7e7
movzx ecx, byte [esi + ebx - 2]
test ecx, ecx
je 0x47b7f4
mov edx, ecx
and dl, 0xdf
cmp dl, 0x59
jne 0x47b7fb
movzx ecx, byte [esi + ebx - 1]
test ecx, ecx
je 0x47bb32
mov eax, ecx
and al, 0xdf
cmp al, 0x53
je 0x47b81b
lea eax, [ecx + 0x52a853]
mov ecx, 0x53238b
jmp 0x47b806
push dword [ecx]
push str.too_many_columns_on__s
push edi
call fcn.00434540
add esp, 0x38
jmp 0x47bf8f
lea eax, [esi - 1]
cmp eax, 2
jb 0x47b797
mov eax, 2
nop dword [eax]
movzx ecx, byte [edx + eax - 1]
cmp byte [ecx + 0x52aaeb], 0
js 0x47b683
inc eax
cmp esi, eax
jne 0x47b780
add esi, 0xfffffffe
mov dword [esp + 0x10], esi
inc edx
jmp 0x47b687
mov ecx, str.always
jmp 0x47b809
lea eax, [ecx + 0x52a853]
mov ecx, str.always
jmp 0x47b806
mov ecx, 0x532387
jmp 0x47b809
lea eax, [ecx + 0x52a853]
mov ecx, 0x532387
jmp 0x47b806
mov ecx, 0x532388
jmp 0x47b809
lea eax, [ecx + 0x52a853]
mov ecx, 0x532388
jmp 0x47b806
mov ecx, 0x532389
jmp 0x47b809
lea eax, [ecx + 0x52a853]
mov ecx, 0x532389
jmp 0x47b806
mov ecx, 0x53238a
jmp 0x47b809
lea eax, [ecx + 0x52a853]
mov ecx, 0x53238a
movzx eax, byte [eax]
movzx ecx, byte [ecx]
movzx ecx, byte [ecx + 0x52a853]
cmp eax, ecx
jne 0x47b9af
add ebx, 0xfffffff1
nop
cmp ebx, 0xfffffff7
je 0x47b993
movzx eax, byte [esi + ebx + 8]
dec ebx
test byte [eax + 0x52aaeb], 1
jne 0x47b820
lea eax, [ebx + 0xa]
cmp eax, 9
jb 0x47b9a4
mov byte [esp + 7], 0x41
mov byte [esp + 0x14], 1
movzx edx, byte [esi + ebx + 1]
xor ecx, ecx
test edx, edx
je 0x47bac1
mov dword [esp], ebx
mov ebx, edx
and bl, 0xdf
cmp bl, 0x47
jne 0x47bacb
mov ebx, dword [esp]
movzx edx, byte [esi + ebx + 2]
test edx, edx
je 0x47bade
mov ebx, edx
and bl, 0xdf
cmp bl, 0x45
jne 0x47bae8
mov ebx, dword [esp]
movzx edx, byte [esi + ebx + 3]
test edx, edx
je 0x47bafb
mov ebx, edx
and bl, 0xdf
cmp bl, 0x4e
jne 0x47bb05
mov ebx, dword [esp]
movzx edx, byte [esi + ebx + 4]
test edx, edx
je 0x47bb18
mov ebx, edx
and bl, 0xdf
cmp bl, 0x45
jne 0x47bb22
mov ebx, esi
mov edx, dword [esp]
mov dword [esp + 0xc], esi
movzx edx, byte [esi + edx + 5]
test edx, edx
je 0x47bb3c
mov esi, edi
mov ebx, edx
and bl, 0xdf
cmp bl, 0x52
jne 0x47bb46
mov edx, dword [esp]
mov ebx, dword [esp + 0xc]
movzx edx, byte [ebx + edx + 6]
test edx, edx
je 0x47bb53
mov ebx, edx
and bl, 0xdf
cmp bl, 0x41
jne 0x47bb5d
mov edx, dword [esp]
mov ebx, dword [esp + 0xc]
movzx edx, byte [ebx + edx + 7]
test edx, edx
je 0x47bb6a
mov ebx, edx
and bl, 0xdf
cmp bl, 0x54
jne 0x47bb74
mov edx, dword [esp]
mov ebx, dword [esp + 0xc]
movzx edx, byte [ebx + edx + 8]
test edx, edx
je 0x47bb81
mov ebx, edx
and bl, 0xdf
cmp bl, 0x45
jne 0x47bb8b
mov edx, dword [esp]
mov ebx, dword [esp + 0xc]
movzx edx, byte [ebx + edx + 9]
test edx, edx
je 0x47bf94
mov ecx, edx
and cl, 0xdf
cmp cl, 0x44
mov edi, esi
mov ebp, dword [esp + 8]
mov ebx, dword [esp]
mov esi, dword [esp + 0xc]
je 0x47bbb8
lea ecx, [edx + 0x52a853]
mov edx, 0x532395
jmp 0x47bba3
mov byte [esp + 7], 0x41
mov byte [esp + 0x14], 1
xor ebx, ebx
jmp 0x47bbe5
mov ebx, eax
cmp ebx, 3
jb 0x47bbdb
mov eax, ebx
movzx ecx, byte [esi]
cmp byte [ecx + 0x52aaeb], 0
js 0x47ba7b
mov ebx, eax
lea eax, [ebx + 1]
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp], ebx
jmp 0x47b9f2
movzx ecx, byte [edi + ebx]
movzx edx, byte [ecx + 0x52a853]
xor ecx, ecx
movzx edx, dl
cmp ecx, edx
je 0x47ba45
inc eax
cmp eax, 6
mov ebx, dword [esp]
je 0x47baad
movzx ecx, byte [eax + 0x532397]
cmp ebx, ecx
jne 0x47b9e5
mov edi, dword [eax*4 + 0x53c9d0]
test edi, edi
je 0x47b9e5
cmp dword [esp], 0
jle 0x47ba45
xor ebx, ebx
mov ebp, dword [esp + 0x14]
nop word cs:[eax + eax]
movzx ecx, byte [esi + ebx]
test ecx, ecx
je 0x47b9d1
movzx ecx, byte [ecx + 0x52a853]
movzx edx, byte [edi + ebx]
movzx edx, byte [edx + 0x52a853]
cmp cl, dl
jne 0x47b9de
dec ebp
inc ebx
cmp ebp, 1
ja 0x47ba20
mov ecx, eax
inc cl
mov dword [esp + 0x20], ecx
movzx ecx, byte [eax + str.CADDEBduplicate_column_name:__s]
mov byte [esp + 7], cl
and eax, 0x7ffffffb
cmp eax, 1
sete al
shl al, 2
or al, 1
mov byte [esp + 0x14], al
xor ebx, ebx
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0x24]
jmp 0x47bbed
lea ebx, [eax - 2]
mov ecx, 2
nop word cs:[eax + eax]
movzx edx, byte [esi + ecx - 1]
cmp byte [edx + 0x52aaeb], 0
js 0x47b9c1
inc ecx
cmp eax, ecx
jne 0x47ba90
inc esi
jmp 0x47b9c3
mov byte [esp + 7], 0x41
mov byte [esp + 0x14], 1
mov dword [esp + 0x20], 0
jmp 0x47ba6e
mov edx, str.generated
jmp 0x47bba6
lea ecx, [edx + 0x52a853]
mov edx, str.generated
mov ebx, dword [esp]
jmp 0x47bba3
mov edx, 0x53238e
jmp 0x47bba6
lea ecx, [edx + 0x52a853]
mov edx, 0x53238e
mov ebx, dword [esp]
jmp 0x47bba3
mov edx, 0x53238f
jmp 0x47bba6
lea ecx, [edx + 0x52a853]
mov edx, 0x53238f
mov ebx, dword [esp]
jmp 0x47bba3
mov edx, 0x532390
jmp 0x47bba6
lea ecx, [edx + 0x52a853]
mov edx, 0x532390
mov ebx, dword [esp]
jmp 0x47bba3
mov ecx, 0x53238b
jmp 0x47b809
mov edx, 0x532391
jmp 0x47bf9f
lea ecx, [edx + 0x52a853]
mov edx, 0x532391
jmp 0x47bb96
mov edx, 0x532392
jmp 0x47bf99
lea ecx, [edx + 0x52a853]
mov edx, 0x532392
jmp 0x47bb96
mov edx, 0x532393
jmp 0x47bf99
lea ecx, [edx + 0x52a853]
mov edx, 0x532393
jmp 0x47bb96
mov edx, 0x532394
jmp 0x47bf99
lea ecx, [edx + 0x52a853]
mov edx, 0x532394
mov edi, esi
mov ebp, dword [esp + 8]
mov ebx, dword [esp]
mov esi, dword [esp + 0xc]
movzx ecx, byte [ecx]
movzx edx, byte [edx]
movzx edx, byte [edx + 0x52a853]
cmp ecx, edx
jne 0x47b9b1
cmp ebx, 0xffffffff
je 0x47b99d
movzx eax, byte [esi + ebx]
dec ebx
test byte [eax + 0x52aaeb], 1
jne 0x47bbb8
add ebx, 2
cmp ebx, 3
jae 0x47b9af
mov byte [esp + 7], 0x41
mov byte [esp + 0x14], 1
mov dword [esp + 0x20], 0
xor eax, eax
mov ecx, dword [esp + 0x10]
add ecx, ebx
setb al
xor edx, edx
test ebx, ebx
setne dl
add edx, ecx
adc eax, 0
add edx, 1
adc eax, 0
test ebp, ebp
je 0x47bc1b
mov ecx, ebp
push eax
call fcn.0043f5f0
add esp, 4
jmp 0x47bc24
mov ecx, edx
mov edx, eax
call fcn.00424d20
mov ebp, eax
test eax, eax
mov edx, dword [esp + 0x18]
je 0x47bf8c
movzx eax, byte [edi + 0xd0]
cmp eax, 3
ja 0x47bdcc
cmp eax, 2
je 0x47bdcc
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x10]
push edi
push edx
push ebp
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov byte [ebp + edi], 0
movzx eax, byte [ebp]
cmp byte [eax + 0x52aaeb], 0
mov dword [esp], ebx
js 0x47bc93
mov esi, dword [esp + 0x1c]
test al, al
je 0x47bcd3
lea ecx, [ebp + 1]
xor ebx, ebx
movzx eax, al
add bl, byte [eax + 0x52a853]
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x47bc80
jmp 0x47bcd5
cmp al, 0x5b
movzx ecx, al
mov eax, 0x5d
cmovne eax, ecx
mov edx, 1
mov ecx, ebp
mov esi, dword [esp + 0x1c]
jmp 0x47bcb4
mov byte [ecx], bl
inc edx
inc ecx
movzx ebx, byte [ebp + edx]
cmp bl, al
jne 0x47bcb0
cmp byte [ebp + edx + 1], al
jne 0x47bcc8
inc edx
mov ebx, eax
jmp 0x47bcb0
mov byte [ecx], 0
movzx eax, byte [ebp]
test al, al
jne 0x47bc7b
xor ebx, ebx
movsx eax, word [esi + 0x22]
mov edx, dword [esi + 4]
test eax, eax
mov dword [esp + 0x18], eax
jle 0x47bd65
xor esi, esi
mov dword [esp + 0x10], edx
jmp 0x47bcfd
inc esi
mov eax, dword [esp + 0x18]
cmp esi, eax
mov edx, dword [esp + 0x10]
je 0x47bd65
lea eax, [esi + esi*2]
cmp byte [edx + eax*4 + 7], bl
jne 0x47bcf0
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + eax*4]
xor edi, edi
jmp 0x47bd30
movzx ecx, byte [ecx + 0x52a853]
cmp cl, byte [eax + 0x52a853]
jne 0x47bcf0
inc edi
movzx ecx, byte [ebp + edi]
movzx eax, byte [edx + edi]
cmp cl, al
jne 0x47bd20
test ecx, ecx
jne 0x47bd2f
push ebp
push 0x5323a3
push dword [esp + 0x2c]
call fcn.00434540
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, ebp
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.0043f4f0
mov ecx, 0xc
mov esi, edx
imul ecx
mov edi, edx
add eax, 0xc
adc edi, 0
test esi, esi
je 0x47bde3
mov edx, esi
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x164], esi
jbe 0x47be45
cmp dword [ecx + 0x15c], edx
jbe 0x47be33
cmp dword [ecx + 0x160], edx
ja 0x47be45
movzx edx, word [ecx + 0x136]
mov dword [esp + 0x28], edx
xor edx, edx
cmp dword [esp + 0x28], eax
sbb edx, edi
mov edx, esi
jb 0x47be45
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
jmp 0x47be61
mov ecx, dword [edi]
test ecx, ecx
je 0x47bdf4
mov edx, 0x10
push 0
call fcn.0043f5f0
add esp, 4
jmp 0x47be00
mov ecx, dword [esp + 8]
mov edx, eax
push edi
call fcn.0043f5f0
add esp, 4
jmp 0x47be4f
mov ecx, 0x10
xor edx, edx
call fcn.00424d20
test eax, eax
mov edx, dword [esp + 0x18]
je 0x47bc4b
mov dword [eax + 0xc], 0
mov dword [eax], ebp
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x10c]
mov dword [eax + 0xc], ecx
mov dword [edi + 0x10c], eax
jmp 0x47bc4b
cmp eax, 0x81
mov edx, edi
sbb edx, 0
mov edx, esi
jb 0x47bdbf
push edi
push eax
call fcn.0043f6a0
add esp, 8
mov edx, eax
test eax, eax
mov ecx, dword [esp + 0x1c]
je 0x47bd53
movsx eax, word [ecx + 0x22]
mov dword [ecx + 4], edx
lea edi, [eax + eax*2]
mov dword [edx + edi*4 + 4], 0
mov dword [edx + edi*4 + 8], 0
mov dword [edx + edi*4], ebp
mov byte [edx + edi*4 + 7], bl
mov ebx, dword [esp]
test ebx, ebx
je 0x47bf47
lea eax, [edx + edi*4]
mov dword [esp + 8], eax
push ebp
mov dword [esp + 0x14], edx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
mov dword [esp + 0x14], eax
lea ecx, [eax + ebp]
mov dword [esp + 0x18], ecx
mov esi, edi
lea edi, [ebp + eax + 1]
push ebx
push dword [esp + 0x10]
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, dword [esp + 0x14]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov byte [ebx + eax + 1], 0
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
movzx eax, byte [ebp + eax + 1]
cmp byte [eax + 0x52aaeb], 0
mov ebp, dword [esp + 0x24]
jns 0x47bf31
mov dword [esp], esi
mov esi, ebx
cmp al, 0x5b
movzx ecx, al
mov eax, 0x5d
cmovne eax, ecx
mov edx, 1
mov ecx, edi
jmp 0x47bf17
inc edx
mov ebx, eax
mov byte [ecx], bl
inc edx
inc ecx
movzx ebx, byte [edi + edx]
cmp bl, al
jne 0x47bf13
cmp byte [edi + edx + 1], al
je 0x47bf10
mov byte [ecx], 0
mov ebx, esi
mov esi, dword [esp]
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.00477030
mov byte [ebx + esi*4 + 5], al
or byte [ebx + esi*4 + 0xa], 4
mov ecx, dword [esp + 0x1c]
jmp 0x47bf73
movzx eax, byte [esp + 7]
mov byte [edx + edi*4 + 5], al
movzx eax, byte [edx + edi*4 + 4]
mov esi, edx
mov edx, dword [esp + 0x20]
shl dl, 4
and al, 0xf
or al, dl
mov byte [esi + edi*4 + 4], al
movzx eax, byte [esp + 0x14]
mov byte [esi + edi*4 + 6], al
mov ebp, dword [esp + 0x24]
movd xmm0, dword [ecx + 0x22]
pcmpeqd xmm1, xmm1
psubw xmm0, xmm1
movd dword [ecx + 0x22], xmm0
mov dword [ebp + 0x4c], 0
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 0x532395
mov edi, esi
mov ebp, dword [esp + 8]
mov ebx, dword [esp]
mov esi, dword [esp + 0xc]
jmp 0x47bba6