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

Disassembly:
sub esp, 0x5a8
mov eax, dword [0x479938]
xor eax, esp
mov dword [esp + 0x5a4], eax
mov eax, dword [esp + 0x5ac]
push ebp
push edi
mov ebp, ecx
mov ecx, dword [esp + 0x5b8]
xor edi, edi
cmp dword [ebp + 0x14], edi
mov dword [esp + 0x10], ecx
je 0x42317b
mov eax, 0x40000
jmp 0x4237c0
cmp byte [ebp + 0x2c], 0
je 0x42318b
mov eax, 0x50000
jmp 0x4237c0
cmp dword [ebp], edi
push esi
mov esi, dword [esp + 0x5c4]
mov dword [esp + 0x18], edi
je 0x4231a9
cmp esi, 4
je 0x4231a9
mov dword [esp + 0x18], 0xc
push 0x104
push eax
lea edx, [esp + 0x3b0]
push edx
call fcn.0044255c
add esp, 0xc
cmp word [esp + 0x3a8], di
mov word [esp + 0x5ae], di
jne 0x4231db
mov eax, 0x10000
jmp 0x4237bf
lea eax, [esp + 0x3a8]
cmp word [eax], 0x5c
jne 0x4231ed
mov word [eax], 0x2f
add eax, 2
cmp word [eax], di
jne 0x4231e2
cmp esi, 4
sete al
test al, al
push ebx
mov byte [esp + 0x13], al
je 0x42322e
lea eax, [esp + 0x3ac]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x423210
sub eax, edx
sar eax, 1
cmp word [esp + eax*2 + 0x3aa], 0x2f
je 0x42322e
mov bl, 1
jmp 0x423230
xor bl, bl
cmp byte [esp + 0x13], 0
mov dword [esp + 0x14], 8
jne 0x423253
lea eax, [esp + 0x3ac]
push eax
call fcn.004212b0
add esp, 4
test al, al
je 0x423257
mov dword [esp + 0x14], edi
cmp esi, 2
jne 0x42326a
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, ebp
call fcn.00422350
jmp 0x4232b0
cmp esi, 1
jne 0x423285
mov edx, dword [esp + 0x5c4]
mov eax, dword [esp + 0x18]
push edx
push eax
mov ecx, ebp
call fcn.004216b0
jmp 0x4232b0
cmp esi, 3
jne 0x4232a0
mov ecx, dword [esp + 0x5c4]
mov edx, dword [esp + 0x18]
push ecx
push edx
mov ecx, ebp
call fcn.004217a0
jmp 0x4232b0
cmp esi, 4
jne 0x4237b9
mov ecx, ebp
call fcn.00421830
cmp eax, edi
jne 0x4237be
push edi
push edi
push 0x104
lea eax, [esp + 0x174]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x3c0]
push ecx
push edi
push 0xfde9
mov dword [esp + 0x39c], edi
mov byte [esp + 0x78], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [esp + 0x168]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4232f3
sub eax, edx
test bl, bl
mov dword [esp + 0x38], eax
je 0x42332b
lea edi, [esp + 0x168]
add edi, 0xffffffff
mov al, byte [edi + 1]
add edi, 1
test al, al
jne 0x423310
mov dx, word [0x465ea8]
mov word [edi], dx
add dword [esp + 0x38], 1
xor edi, edi
cmp dword [ebp], edi
mov eax, dword [ebp + 0x5c]
mov bl, byte [esp + 0x13]
mov dword [esp + 0x28], eax
mov ax, 8
mov byte [esp + 0x26c], 0
mov dword [esp + 0x164], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x370], 1
mov dword [esp + 0x378], edi
mov word [esp + 0x4a], di
mov word [esp + 0x20], 0xb17
mov word [esp + 0x22], 0x14
mov dword [esp + 0x2c], edi
mov word [esp + 0x24], ax
je 0x42338d
test bl, bl
jne 0x42338d
mov ax, 9
mov word [esp + 0x24], ax
mov word [esp + 0x4c], ax
mov eax, dword [esp + 0x14]
cmp eax, edi
mov word [esp + 0x26], ax
jne 0x4233b2
mov eax, dword [ebp + 0x64]
cmp eax, edi
jl 0x4233b2
mov ecx, dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x30], eax
jmp 0x4233b6
mov dword [esp + 0x30], edi
mov ecx, dword [ebp + 0x10]
add ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x64]
mov dword [esp + 0x34], edx
mov dword [esp + 0x54], ecx
movzx ecx, byte [ebp + 0x54]
mov dword [esp + 0x50], eax
mov byte [esp + 0x385], cl
lea eax, [esp + 0x394]
mov dword [esp + 0x160], eax
mov eax, dword [ebp + 0x54]
lea edx, [esp + 0x380]
mov dword [esp + 0x15c], edx
mov edx, eax
sar edx, 8
mov byte [esp + 0x386], dl
mov dl, byte [ebp + 0x50]
mov ecx, eax
sar ecx, 0x10
mov byte [esp + 0x387], cl
mov ecx, dword [ebp + 0x50]
mov byte [esp + 0x389], dl
mov edx, ecx
sar edx, 8
mov byte [esp + 0x38a], dl
mov edx, ecx
sar ecx, 0x18
mov byte [esp + 0x38c], cl
movzx ecx, byte [ebp + 0x58]
sar edx, 0x10
mov byte [esp + 0x38b], dl
mov byte [esp + 0x38d], cl
mov ecx, dword [ebp + 0x58]
mov edx, ecx
sar edx, 8
mov byte [esp + 0x38e], dl
mov edx, ecx
sar eax, 0x18
sar ecx, 0x18
sar edx, 0x10
push ebp
mov byte [esp + 0x384], 0x55
mov byte [esp + 0x385], 0x54
mov byte [esp + 0x386], 0xd
mov byte [esp + 0x387], 0
mov byte [esp + 0x38c], al
mov byte [esp + 0x394], cl
mov ecx, dword [esp + 0x384]
mov byte [esp + 0x3a0], al
mov byte [esp + 0x388], 7
mov byte [esp + 0x393], dl
mov edx, dword [esp + 0x388]
lea eax, [esp + 0x24]
push fcn.00422330
mov dword [esp + 0x39c], ecx
push eax
mov word [esp + 0x54], di
mov dword [esp + 0x48], 0x11
mov dword [esp + 0x4c], 9
mov dword [esp + 0x3a4], edx
mov byte [esp + 0x3a2], 5
call fcn.00420730
add esp, 0xc
test eax, eax
je 0x423509
mov ecx, ebp
call fcn.00421950
mov eax, 0x400
jmp 0x4237be
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
lea eax, [edx + ecx + 0x1e]
add dword [ebp + 0x18], eax
cmp dword [ebp + 0x14], edi
je 0x42352c
mov ecx, ebp
call fcn.00421950
mov eax, dword [ebp + 0x14]
jmp 0x4237be
mov esi, dword [ebp]
test esi, esi
lea edi, [ebp + 0x30]
mov dword [edi], 0x12345678
mov dword [ebp + 0x34], 0x23456789
mov dword [ebp + 0x38], 0x34567890
je 0x423566
lea ebx, [ebx]
movzx eax, byte [esi]
test al, al
je 0x423566
push eax
push edi
call fcn.004211a0
add esp, 8
add esi, 1
jne 0x423550
cmp byte [0x47b074], 0
jne 0x42357f
push 0
call fcn.00443f7a
push eax
call fcn.00444224
add esp, 8
xor esi, esi
call fcn.00444231
sar eax, 7
mov byte [esp + esi + 0x3a0], al
add esi, 1
cmp esi, 0xc
jl 0x423581
mov ecx, dword [esp + 0x28]
shr ecx, 8
mov byte [esp + 0x3ab], cl
xor esi, esi
jmp 0x4235b0
movzx edx, byte [esp + esi + 0x3a0]
push edx
push edi
call fcn.00421210
mov byte [esp + esi + 0x3a8], al
add esi, 1
add esp, 8
cmp esi, 0xc
jl 0x4235b0
cmp dword [ebp], 0
je 0x4235f2
test bl, bl
jne 0x4235f2
push 0xc
lea eax, [esp + 0x3a4]
push eax
push ebp
call fcn.00422330
add esp, 0xc
add dword [ebp + 0x18], 0xc
xor esi, esi
cmp dword [ebp], esi
je 0x423604
test bl, bl
jne 0x423604
mov eax, 1
jmp 0x423606
xor eax, eax
test bl, bl
mov edi, dword [esp + 0x14]
mov byte [ebp + 0x2d], al
jne 0x423635
cmp edi, 8
jne 0x423626
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebp
call fcn.00423050
mov esi, eax
jmp 0x42363f
test edi, edi
jne 0x42363f
mov ecx, ebp
call fcn.004219b0
mov esi, eax
jmp 0x42363f
mov dword [ebp + 0x84], 0
mov ecx, ebp
mov byte [ebp + 0x2d], 0
call fcn.00421950
mov ecx, dword [ebp + 0x84]
mov eax, dword [ebp + 0x14]
add dword [ebp + 0x18], ecx
test eax, eax
jne 0x4237be
test esi, esi
jne 0x4234ff
mov edx, dword [esp + 0x1c]
lea eax, [ecx + edx]
cmp dword [esp + 0x30], eax
mov edx, dword [ebp + 0x6c]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x64]
sete cl
cmp byte [ebp + 0x1c], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], eax
je 0x4236f9
cmp dword [ebp], esi
je 0x423695
test bl, bl
je 0x4236f9
test byte [esp + 0x24], 1
mov word [esp + 0x26], di
jne 0x4236a8
and word [esp + 0x24], 0xfff7
mov edx, dword [esp + 0x54]
mov cx, word [esp + 0x24]
sub edx, dword [ebp + 0x10]
mov word [esp + 0x4c], cx
push edx
mov ecx, ebp
call fcn.00421650
test al, al
je 0x4236ef
push ebp
lea eax, [esp + 0x24]
push fcn.00422330
push eax
call fcn.00420730
add esp, 0xc
test eax, eax
jne 0x4234ff
mov ecx, dword [ebp + 0x18]
push ecx
mov ecx, ebp
call fcn.00421650
test al, al
jne 0x42373b
mov eax, 0x2000000
jmp 0x4237be
cmp word [esp + 0x26], di
jne 0x423708
test edi, edi
jne 0x423712
test cl, cl
jne 0x423712
mov eax, 0x4000000
jmp 0x4237be
push ebp
lea edx, [esp + 0x24]
push fcn.00422330
push edx
call fcn.004209b0
add esp, 0xc
test eax, eax
jne 0x4234ff
mov ax, word [esp + 0x4c]
add dword [ebp + 0x18], 0x10
mov word [esp + 0x24], ax
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x4237be
mov ecx, dword [esp + 0x40]
push ecx
call fcn.004238eb
mov edx, dword [esp + 0x44]
mov esi, eax
mov eax, dword [esp + 0x164]
push edx
push eax
push esi
call fcn.004428c0
push 0x360
mov dword [esp + 0x174], esi
call fcn.004238bb
mov ecx, 0xd8
lea esi, [esp + 0x34]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x44]
add esp, 0x14
test ecx, ecx
jne 0x423794
mov dword [ebp + 0x44], eax
xor eax, eax
jmp 0x4237be
cmp dword [ecx + 0x35c], 0
je 0x4237af
lea ecx, [ecx]
mov ecx, dword [ecx + 0x35c]
cmp dword [ecx + 0x35c], 0
jne 0x4237a0
mov dword [ecx + 0x35c], eax
xor eax, eax
jmp 0x4237be
mov eax, 0x10000
pop ebx
pop esi
mov ecx, dword [esp + 0x5ac]
pop edi
pop ebp
xor ecx, esp
call fcn.00442241
add esp, 0x5a8
ret 0x10