Function at 0x43e9c0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xa4
mov dword [esp + 8], edx
push ebx
mov dword [esp + 4], ecx
push esi
push edi
push ebp
push 0x4b88a0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.0043c490
test al, al
je 0x43f087
xor ecx, ecx
mov cl, byte [0x4b8a10]
call fcn.0042fb20
test al, al
je 0x43f087
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x18]
add ebx, 2
xor edx, edx
mov eax, dword [esp + 0x18]
mov cl, byte [esp + 0x14]
nop
mov dl, byte [eax + 1]
mov eax, 1
shl eax, cl
test eax, edx
je case.0x43ea3f.9
mov al, byte [ebx]
xor ecx, ecx
mov dl, al
shr dl, 4
mov cl, dl
cmp ecx, 0xf
ja case.0x43ea3f.9
jmp dword [ecx*4 + 0x43f0a0]
mov eax, dword [esp + 0x10]
mov esi, ebx
lea ecx, [eax + eax*2]
lea edi, [ecx*8 + 0x4c2f10]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
call fcn.00440340
jmp case.0x43ea3f.9
and eax, 0xf
mov esi, ebx
lea ecx, [eax + eax*2]
lea ebp, [ecx*8 + 0x4c2190]
mov ecx, 6
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov al, byte [0x4c5af9]
test al, al
je 0x43eab5
mov al, byte [ebx]
mov esi, ebp
and eax, 0xf
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x497b58]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [eax]
mov ecx, 1
and dl, 0xf
call fcn.0043f170
mov al, byte [0x4c5b00]
test al, al
je 0x43eacd
mov al, byte [ebp]
test al, 0xf
jne 0x43eacd
mov eax, dword [ebp + 1]
mov dword [0x4c3990], eax
mov eax, dword [ebp + 8]
lea edx, [ebp + 8]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x1c]
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov eax, dword [edx + 0xc]
lea edx, [esp + 0x1c]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp + 1]
mov dword [esp + 0x50], ecx
mov cl, byte [ebp]
and cl, 0xf
call fcn.0043fe90
jmp case.0x43ea3f.9
and eax, 0xf
mov esi, ebx
lea ecx, [eax + eax*2]
lea edx, [ecx*8 + 0x4c1400]
mov ecx, 6
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov al, byte [0x4c5af9]
test al, al
je case.0x43ea3f.9
mov al, byte [ebx]
mov esi, edx
and eax, 0xf
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x498f50]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [eax]
mov ecx, 2
and dl, 0xf
call fcn.0043f170
jmp case.0x43ea3f.9
mov ecx, ebx
call fcn.0043c7d0
test eax, eax
je 0x43eba8
mov cl, byte [eax + 0x300]
test cl, cl
je 0x43eb8a
mov al, byte [ebx]
mov esi, ebx
and eax, 0xf
mov ecx, 0xc
shl eax, 4
lea edi, [eax + eax*2 + 0x4c1580]
rep movsd dword es:[edi], dword [esi]
jmp 0x43ebca
lea edi, [esp + 0x54]
mov esi, ebx
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0x54]
and al, 0xf
cmp al, 0xf
jne 0x43ebca
call fcn.00407310
jmp 0x43ebca
lea edi, [esp + 0x84]
mov esi, ebx
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0x84]
and al, 0xf
cmp al, 0xf
jne 0x43ebca
call fcn.00432980
mov al, byte [0x4c5af9]
test al, al
je case.0x43ea3f.9
mov al, byte [ebx]
mov esi, ebx
and eax, 0xf
mov ecx, 0xc
shl eax, 4
lea eax, [eax + eax*2 + 0x49b958]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [eax]
mov ecx, 3
and dl, 0xf
call fcn.0043f170
jmp case.0x43ea3f.9
mov ecx, ebx
call fcn.0043c7d0
test eax, eax
je 0x43ec39
mov cl, byte [eax + 0x300]
test cl, cl
je 0x43ec39
mov cl, byte [ebx]
mov esi, ebx
and ecx, 0xf
lea edx, [ecx + ecx*2]
mov ecx, 6
lea edi, [edx*8 + 0x4c1a10]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.00404480
mov al, byte [0x4c5af9]
test al, al
je case.0x43ea3f.9
mov al, byte [ebx]
mov esi, ebx
and eax, 0xf
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x4990d8]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [eax]
mov ecx, 4
and dl, 0xf
call fcn.0043f170
jmp case.0x43ea3f.9
mov ecx, ebx
call fcn.0043c7d0
test eax, eax
je 0x43ec9e
mov cl, byte [ebx]
mov esi, ebx
and ecx, 0xf
lea edx, [ecx + ecx*2]
mov ecx, 6
lea edi, [edx*8 + 0x4c3690]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.0043cbb0
mov al, byte [0x4c5af9]
test al, al
je case.0x43ea3f.9
mov al, byte [ebx]
mov esi, ebx
and eax, 0xf
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x49a978]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [eax]
mov ecx, 5
and dl, 0xf
call fcn.0043f170
jmp case.0x43ea3f.9
and eax, 0xf
mov esi, ebx
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x4c1340]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [0x4c5b00]
test dl, dl
jne 0x43ed17
mov dl, byte [eax]
and dl, 0xf
je 0x43ed17
push ebx
xor ecx, ecx
push 6
mov cl, dl
mov edx, dword [esp + 0x18]
call fcn.0043f0e0
jmp case.0x43ea3f.9
mov ecx, eax
call fcn.0044e220
jmp case.0x43ea3f.9
and eax, 0xf
mov esi, ebx
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x4c35d0]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [0x4c5b00]
test dl, dl
jne 0x43ed61
mov dl, byte [eax]
and dl, 0xf
je 0x43ed61
push ebx
xor ecx, ecx
push 7
mov cl, dl
mov edx, dword [esp + 0x18]
call fcn.0043f0e0
jmp case.0x43ea3f.9
mov ecx, eax
call fcn.0041f3a0
jmp case.0x43ea3f.9
and eax, 0xf
mov esi, ebx
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x4c1280]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [0x4c5b00]
test dl, dl
jne 0x43edab
mov dl, byte [eax]
and dl, 0xf
je 0x43edab
push ebx
xor ecx, ecx
push 8
mov cl, dl
mov edx, dword [esp + 0x18]
call fcn.0043f0e0
jmp case.0x43ea3f.9
mov ecx, eax
call fcn.004416a0
jmp case.0x43ea3f.9
xor eax, eax
mov esi, ebx
mov al, byte [ebx + 5]
lea ecx, [eax + eax*2]
lea ebp, [ecx*8 + 0x4c4bc0]
mov ecx, 6
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov dl, byte [0x4c5af9]
test dl, dl
je 0x43ee15
mov al, byte [ebp]
xor ecx, ecx
and eax, 0xf
mov cl, byte [ebp + 5]
shl eax, 4
mov esi, ebp
add eax, ecx
mov ecx, 6
lea edx, [eax + eax*2]
lea eax, [edx*8 + 0x49ad58]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 5]
and dl, 0xf
push ecx
mov ecx, 0xa
call fcn.0043f2e0
mov ecx, ebp
call fcn.00431c20
jmp case.0x43ea3f.9
mov al, byte [ebx + 5]
test al, al
jne 0x43ee4e
xor eax, eax
mov esi, ebx
mov al, byte [ebx + 6]
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x4c4a40]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.00431ae0
jmp case.0x43ea3f.9
xor eax, eax
mov esi, ebx
mov al, byte [ebx + 6]
lea ecx, [eax + eax*2]
lea ebp, [ecx*8 + 0x4c4fc0]
mov ecx, 6
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov dl, byte [0x4c5af9]
test dl, dl
je 0x43eeb1
mov al, byte [ebp]
xor ecx, ecx
and eax, 0xf
mov cl, byte [ebp + 6]
shl eax, 4
mov esi, ebp
add eax, ecx
mov ecx, 6
lea edx, [eax + eax*2]
lea eax, [edx*8 + 0x499d78]
mov edx, 1
mov edi, eax
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov cl, byte [eax + 6]
mov al, byte [eax]
push ecx
and al, 0xf
push eax
mov ecx, 0xb
call fcn.0043f3a0
mov ecx, ebp
call fcn.00431ba0
jmp case.0x43ea3f.9
and eax, 0xf
mov esi, ebx
lea ecx, [eax + eax*2]
lea ebp, [ecx*8 + 0x4c5600]
mov ecx, 6
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov al, byte [0x4c5af9]
test al, al
je 0x43ef07
mov al, byte [ebx]
mov esi, ebp
and eax, 0xf
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x498ce8]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [eax]
mov ecx, 0xd
and dl, 0xf
call fcn.0043f170
mov ecx, ebp
call fcn.004321f0
jmp case.0x43ea3f.9
and eax, 0xf
mov esi, ebx
lea ecx, [eax + eax*2]
lea edx, [ecx*8 + 0x4c3810]
mov ecx, 6
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov al, byte [0x4c5af9]
test al, al
je case.0x43ea3f.9
mov al, byte [ebx]
mov esi, edx
and eax, 0xf
lea ecx, [eax + eax*2]
lea eax, [ecx*8 + 0x4c2310]
mov ecx, 6
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dl, byte [eax]
mov ecx, 0xe
and dl, 0xf
call fcn.0043f170
jmp case.0x43ea3f.9
mov al, byte [ebx + 5]
cmp al, 6
jne 0x43ef84
mov edi, 0x4c53a0
mov esi, ebx
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x4c53a0
call fcn.00432780
jmp case.0x43ea3f.9
cmp al, 7
jne 0x43efa2
mov edi, 0x4c5140
mov esi, ebx
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x4c5140
call fcn.00432640
jmp case.0x43ea3f.9
cmp al, 8
jne case.0x43ea3f.9
mov edi, 0x4c4d40
mov esi, ebx
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x4c4d40
call fcn.00432880
add ebx, 0x18
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 3
jb 0x43ea0e
mov al, byte [0x4c5af9]
test al, al
je 0x43f06f
push 0x4b88e0
mov esi, 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.00431840
cmp eax, esi
jle 0x43f060
mov ebx, 4
mov edi, 0x497945
mov ebp, 0xffffffff
mov eax, dword [ebx + 0x4c7f70]
test eax, eax
je 0x43f050
movsx ecx, byte [eax + 0x328]
call fcn.0042fb20
test al, al
je 0x43f050
mov eax, dword [ebx + 0x4c7f70]
cmp dword [eax + 0x324], ebp
jne 0x43f050
mov ecx, esi
mov byte [edi], 0
mov dword [ebx + 0x49abb8], 0
call fcn.0043f4b0
cmp byte [edi], 0
je 0x43f050
mov ecx, esi
call fcn.0043f470
add ebx, 4
call fcn.00431840
add edi, 0x4c
inc esi
cmp eax, esi
jg 0x43f008
push 0x4b88e0
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call esi
jmp 0x43f075
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x4b88a0
call esi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xa4
ret
push 0x4b88a0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xa4
ret