Function at 0x423c03
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov ecx, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx]
push esi
push edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
cmp eax, edx
jne 0x423c3e
xor eax, eax
jmp 0x424462
mov esi, dword [ebp + 0xc]
cmp esi, edx
je 0x423eb0
movzx edi, byte [esi]
cmp edi, 0x68
jg 0x423ec5
je 0x423eb0
cmp edi, 0x25
jg 0x423dfe
cmp edi, 0x20
jge 0x423dbc
cmp edi, 0x10
je 0x423e64
cmp edi, 0x16
jle case.0x423edb.133
cmp edi, 0x18
jle 0x423e83
cmp edi, 0x19
je case.0x423edb.146
cmp edi, 0x1c
je 0x423cf5
cmp edi, 0x1d
jle case.0x423edb.133
cmp edi, 0x1f
jg case.0x423edb.133
push dword [ebp + 0x10]
push 1
push 0x4a
push eax
call fcn.00419289
push dword [esi + 0xc]
lea eax, [esp + 0x38]
mov ecx, ebx
call fcn.00424505
add esp, 0x14
push eax
push edi
push dword [esp + 0x18]
call fcn.00419270
add esp, 0xc
push dword [ebp + 0x10]
mov esi, eax
push 0
push 0x4a
push dword [esp + 0x1c]
call fcn.00419289
mov ecx, dword [esp + 0x20]
push esi
call fcn.004194dc
jmp 0x423f18
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0xc]
mov esi, dword [eax + 4]
mov eax, dword [esi]
mov dword [esp + 0x20], eax
push edi
lea eax, [esp + 0x28]
mov ecx, ebx
call fcn.00424505
pop ecx
push dword [esp + 0x20]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x34]
mov ecx, ebx
call fcn.00424505
mov edx, eax
pop ecx
mov eax, ebx
call fcn.0042522d
mov dword [esp + 0x1c], eax
mov eax, ebx
call fcn.0042522d
push 0x20
push dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
push edx
push dword [esp + 0x20]
mov ecx, ebx
push 0x25
push edi
call fcn.00422a25
mov edx, dword [esp + 0x48]
mov esi, dword [esi + 0x18]
mov eax, ebx
call fcn.00425248
push esi
lea eax, [esp + 0x4c]
mov ecx, ebx
call fcn.00424505
add esp, 0x1c
push 0x20
push dword [esp + 0x1c]
mov ecx, ebx
push eax
push dword [esp + 0x20]
mov eax, esi
push 0x23
push edi
call fcn.00422a25
push dword [ebp + 0x10]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push 0x18
push dword [esp + 0x38]
call fcn.004191f8
mov edx, dword [esp + 0x48]
add esp, 0x2c
mov eax, ebx
call fcn.00425248
mov edx, dword [esp + 0x18]
call fcn.00425248
jmp 0x42444a
push dword [esi + 0xc]
lea eax, [esp + 0x28]
mov ecx, ebx
call fcn.00424505
pop ecx
push dword [esi + 0x10]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x34]
mov ecx, ebx
call fcn.00424505
pop ecx
push 0x20
push dword [ebp + 0x10]
push eax
push dword [esp + 0x20]
push edi
push dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov ecx, ebx
call fcn.00422a25
add esp, 0x18
jmp 0x42444a
cmp edi, 0x27
jl case.0x423edb.133
cmp edi, 0x30
jle 0x423e83
cmp edi, 0x31
je case.0x423edb.154
cmp edi, 0x32
je 0x423e64
cmp edi, 0x58
je 0x423e45
cmp edi, 0x64
jne case.0x423edb.133
xor eax, eax
push eax
push dword [esi + 8]
push eax
push dword [ebp + 0x10]
push eax
push edi
push dword [esp + 0x28]
call fcn.004192bb
add esp, 0x1c
jmp 0x42444a
mov eax, dword [esi + 0x2c]
movsx eax, word [eax + 0x22]
movsx ecx, word [esi + 0x20]
push dword [ebp + 0x10]
inc eax
imul eax, dword [esi + 0x1c]
lea eax, [eax + ecx + 1]
push eax
push 0x8d
jmp 0x423e7d
push dword [esi + 0xc]
lea eax, [esp + 0x28]
mov ecx, ebx
call fcn.00424505
pop ecx
mov ecx, dword [ebp + 0x10]
push ecx
push eax
mov dword [esp + 0x30], ecx
push edi
push dword [esp + 0x1c]
jmp 0x423eb8
push dword [esi + 0xc]
lea eax, [esp + 0x28]
mov ecx, ebx
call fcn.00424505
pop ecx
push dword [esi + 0x10]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x34]
mov ecx, ebx
call fcn.00424505
pop ecx
push dword [ebp + 0x10]
push dword [esp + 0x18]
push eax
push edi
jmp 0x423f0f
push dword [ebp + 0x10]
push 0
push 0x4d
push eax
call fcn.00419289
add esp, 0x10
jmp 0x42444a
lea eax, [edi - 0x84]
cmp eax, 0x19
ja case.0x423edb.133
movzx eax, byte [eax + 0x424497]
jmp dword [eax*4 + 0x42446b]
movsx eax, word [esi + 0x22]
mov ecx, dword [esi + 0x28]
imul eax, eax, 0x18
add eax, dword [ecx + 0x1c]
cmp byte [ecx], dl
jne 0x423eff
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
jmp 0x42444a
cmp byte [ecx + 1], dl
je case.0x423edb.150
push dword [ebp + 0x10]
push dword [eax + 0xc]
push dword [ecx + 8]
push 0x5e
push dword [esp + 0x20]
call fcn.004191f8
add esp, 0x14
jmp 0x42444a
mov eax, dword [esi + 0x1c]
cmp eax, edx
jge 0x423f39
mov ecx, dword [ebx + 0x64]
cmp ecx, edx
jle 0x423f36
movsx eax, word [esi + 0x20]
add eax, ecx
jmp 0x423ef6
mov eax, dword [ebx + 0x68]
movzx ecx, byte [esi + 0x26]
push ecx
push dword [ebp + 0x10]
push eax
movsx eax, word [esi + 0x20]
push eax
push dword [esi + 0x2c]
mov eax, ebx
call fcn.00423afd
add esp, 0x14
jmp 0x423ef6
push dword [ebp + 0x10]
mov eax, esi
push 0
mov ecx, ebx
call fcn.004238a6
pop ecx
pop ecx
jmp 0x42444a
push dword [ebp + 0x10]
movsx eax, word [esi + 0x20]
push eax
push 0x50
push dword [esp + 0x1c]
call fcn.00419289
mov eax, dword [esi + 8]
add esp, 0x10
cmp byte [eax + 1], 0
je 0x42444a
movsx eax, word [esi + 0x20]
mov ecx, dword [ebx + 0x1c8]
push 0xfffffffffffffffe
push dword [ecx + eax*4 - 4]
push 0xffffffffffffffff
push dword [esp + 0x1c]
call fcn.004196bd
jmp 0x423ebd
mov eax, dword [esi + 0x1c]
jmp 0x423ef6
push dword [esi + 0xc]
lea eax, [esp + 0x28]
mov ecx, ebx
call fcn.00424505
pop ecx
push dword [esi + 0x10]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x34]
mov ecx, ebx
call fcn.00424505
pop ecx
push 0xa0
push dword [ebp + 0x10]
push eax
push dword [esp + 0x20]
xor eax, eax
cmp edi, 0x19
sete al
add eax, 0x20
push eax
jmp 0x423de9
mov eax, dword [esi + 0xc]
cmp byte [eax], 0x84
mov ecx, ebx
jne 0x42400e
push dword [ebp + 0x10]
push 1
call fcn.004238a6
pop ecx
pop ecx
jmp 0x424052
and dword [esp + 0x40], edx
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x28]
mov byte [esp + 0x3c], 0x84
mov dword [esp + 0x40], 0x4400
call fcn.00424505
pop ecx
push dword [esi + 0xc]
mov edi, eax
lea eax, [esp + 0x34]
mov ecx, ebx
call fcn.00424505
pop ecx
push dword [ebp + 0x10]
push edi
push eax
push 0x2c
push dword [esp + 0x20]
call fcn.004191f8
add esp, 0x14
mov eax, dword [ebp + 0x10]
jmp 0x423ef6
mov eax, dword [esi + 0x28]
cmp eax, edx
jne 0x42406e
push dword [esi + 8]
push str.misuse_of_aggregate:__s__
jmp 0x4242e4
movsx ecx, word [esi + 0x22]
mov eax, dword [eax + 0x28]
shl ecx, 4
mov eax, dword [ecx + eax + 8]
jmp 0x423ef6
test dword [esi + 4], 0x4000
mov al, byte [ecx + 0x42]
mov dword [esp + 0x1c], edx
mov byte [esp + 0x18], al
mov dword [esp + 0x20], edx
je 0x424162
xor edi, edi
mov dword [esp + 0x14], edx
mov esi, dword [esi + 8]
push 0
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push esi
push ecx
call fcn.004286e7
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
je 0x4242de
cmp dword [eax + 0x10], 0
jne 0x4242de
movzx eax, word [eax + 2]
test eax, 0x200
je 0x424178
mov eax, dword [esp + 0x10]
call fcn.00419372
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 4]
push esi
push dword [eax]
push ebx
call fcn.004245bd
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp eax, 1
jle 0x424159
dec eax
mov dword [esp + 0x1c], 0x18
mov dword [esp + 0x20], eax
push dword [esp + 0x18]
push esi
push 0x1f
push dword [esp + 0x1c]
call fcn.00419289
push 1
mov eax, ebx
call fcn.00423a2e
mov ecx, dword [esp + 0x30]
add esp, 0x14
inc dword [ebx + 0x6c]
mov eax, dword [edi + 4]
push esi
push dword [eax + ecx]
push ebx
call fcn.004245bd
add esp, 0xc
mov eax, ebx
call fcn.00423a65
add dword [esp + 0x1c], 0x18
dec dword [esp + 0x20]
jne 0x424114
push dword [esp + 0x18]
jmp 0x42443e
mov edi, dword [esi + 0x14]
cmp edi, edx
je 0x42409f
mov eax, dword [edi]
mov dword [esp + 0x14], eax
jmp 0x4240a3
test eax, 0x400
je 0x424195
push dword [ebp + 0x10]
mov eax, dword [edi + 4]
push dword [eax]
push ebx
call fcn.00423c03
add esp, 0xc
jmp 0x423ef6
mov ecx, dword [esp + 0x14]
and dword [esp + 0x2c], 0
test ecx, ecx
jle 0x4241ff
xor esi, esi
cmp dword [esp + 0x2c], 0x20
jge 0x4241cc
mov eax, dword [edi + 4]
mov eax, dword [esi + eax]
push 1
push eax
call fcn.004236f3
pop ecx
pop ecx
test eax, eax
je 0x4241cc
mov ecx, dword [esp + 0x2c]
xor eax, eax
inc eax
shl eax, cl
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
test byte [eax + 2], 0x20
je 0x4241ee
cmp dword [esp + 0x20], 0
jne 0x4241ee
mov eax, dword [edi + 4]
mov ecx, dword [eax + esi]
push ebx
call fcn.0042288a
pop ecx
mov dword [esp + 0x20], eax
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
add esi, 0x18
cmp dword [esp + 0x2c], ecx
jl 0x4241a4
xor esi, esi
cmp edi, esi
je 0x424261
cmp dword [esp + 0x1c], esi
je 0x424218
mov eax, dword [ebx + 0x4c]
lea esi, [eax + 1]
add eax, ecx
mov dword [ebx + 0x4c], eax
jmp 0x424223
mov esi, ecx
mov ecx, ebx
call fcn.0042527c
mov esi, eax
mov edx, dword [esp + 0x18]
test byte [edx + 2], 0xc0
je 0x424247
mov eax, dword [edi + 4]
mov eax, dword [eax]
mov cl, byte [eax]
cmp cl, 0x96
je 0x42423e
cmp cl, 0x98
jne 0x424247
mov cl, byte [edx + 2]
and cl, 0xc0
mov byte [eax + 0x26], cl
inc dword [ebx + 0x6c]
push 3
push 0
push esi
push edi
mov eax, ebx
call fcn.0042464a
add esp, 0x10
mov eax, ebx
call fcn.00423a65
mov eax, dword [esp + 0x18]
test byte [eax + 2], 0x20
je 0x424290
mov eax, dword [esp + 0x20]
xor ecx, ecx
cmp eax, ecx
jne 0x42427c
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 8]
push 0xfffffffffffffffc
push eax
push ecx
push ecx
push ecx
push 0x56
push dword [esp + 0x28]
call fcn.004192bb
add esp, 0x1c
push 0xfffffffffffffffb
push dword [esp + 0x1c]
push dword [ebp + 0x10]
push esi
push dword [esp + 0x2c]
push 0x57
push dword [esp + 0x28]
call fcn.004192bb
mov dl, byte [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esp, 0x1c
call fcn.004194c6
mov edi, dword [esp + 0x14]
test edi, edi
je 0x42444a
cmp dword [esp + 0x1c], 0
jne 0x42444a
mov ecx, esi
mov eax, ebx
call fcn.004252a0
jmp 0x42444a
push esi
push str.unknown_function:__s__
mov esi, ebx
call fcn.0040cb7b
jmp 0x423f64
push dword [ebp + 0x10]
push dword [esi + 0xc]
jmp 0x424187
mov edi, dword [esi + 0x14]
mov eax, dword [edi + 4]
and dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], edi
call fcn.00419372
mov esi, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], esi
test esi, esi
je 0x42437b
push 0xc
pop ecx
push dword [esp + 0x20]
lea edi, [esp + 0x3c]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x28]
mov ecx, ebx
call fcn.00424505
and dword [esp + 0x40], 0xffffefff
and dword [esp + 0x28], 0
mov edi, dword [esp + 0x38]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x3c]
pop ecx
mov cl, byte [esp + 0x38]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x68]
mov byte [esp + 0x5e], cl
mov byte [esp + 0x38], 0x9b
mov byte [esp + 0x68], 0x21
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
lea ecx, [eax - 1]
test ecx, ecx
jle 0x424404
mov esi, dword [esp + 0x14]
lea eax, [ecx - 1]
shr eax, 1
inc eax
mov dword [esp + 0x34], eax
inc dword [ebx + 0x6c]
cmp dword [esp + 0x20], 0
mov eax, dword [esi]
je 0x4243a6
mov dword [esp + 0x78], eax
jmp 0x4243aa
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
call fcn.00419372
push 0x10
push eax
push dword [esp + 0x24]
mov dword [esp + 0x20], eax
push ebx
call fcn.00424a1c
push dword [ebp + 0x10]
push dword [esi + 0x18]
push ebx
call fcn.004245bd
add esp, 0x1c
push dword [esp + 0x2c]
push dword [esp + 0x14]
call fcn.004192a4
mov eax, ebx
call fcn.00423a65
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
call fcn.004193b5
add esp, 0xc
add esi, 0x30
dec dword [esp + 0x34]
jne 0x424394
mov eax, dword [esp + 0x18]
push dword [ebp + 0x10]
test al, 1
je 0x42442a
inc dword [ebx + 0x6c]
imul eax, eax, 0x18
mov ecx, dword [edi + 4]
push dword [eax + ecx - 0x18]
push ebx
call fcn.004245bd
add esp, 0xc
mov eax, ebx
call fcn.00423a65
jmp 0x42443a
push 0
push 0x4d
push dword [esp + 0x1c]
call fcn.00419289
add esp, 0x10
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
call fcn.004193b5
add esp, 4
mov edx, dword [esp + 0x24]
mov eax, ebx
call fcn.00425248
mov edx, dword [esp + 0x30]
call fcn.00425248
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret