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

Disassembly:
sub esp, 0xd0
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xe4]
xor esi, esi
mov ebx, 1
cmp edi, esi
mov ebp, ecx
mov edx, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
je 0x423e5a
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x423e5a
xor edx, edx
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0xe8]
cmp edi, esi
je 0x423e77
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x423e77
xor edx, edx
mov dword [esp + 0x28], ebx
mov edi, dword [esp + 0xec]
cmp edi, esi
je 0x423e8e
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x423ea1
cmp edx, esi
je 0x423ea1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd0
ret 0xc
mov ecx, ebp
call fcn.004238e0
xor esi, esi
mov dword [esp + 0x3c], 0x4d08c0
mov dword [esp + 0x20], esi
mov dword [esp + 0x40], 0x4d08b8
mov dword [esp + 0x44], 0x4d08b0
mov dword [esp + 0x48], 0x4d08a8
mov dword [esp + 0x4c], 0x4d08a0
lea ebx, [ebp + 0x25cc]
lea edi, [ebp + 0x248c]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x423f00
mov eax, dword [esp + esi + 0x3c]
mov ecx, dword [esp + 0xe8]
push edi
push eax
push ecx
call fcn.00402c30
add esp, 0xc
mov eax, dword [esp + 0x24]
test eax, eax
je 0x423f35
mov edx, dword [esp + esi + 0x3c]
mov eax, dword [esp + 0xe4]
push edi
push edx
push eax
call fcn.00402c30
add esp, 0xc
test eax, eax
je 0x423f35
mov ecx, dword [ebx]
mov eax, 1
test ecx, ecx
mov dword [esp + esi + 0x64], eax
je 0x423f35
mov dword [esp + 0x20], eax
add esi, 4
add edi, 0x10
add ebx, 4
cmp esi, 0x14
jl 0x423ee2
mov dword [esp + 0x64], 0x4d0898
mov dword [esp + 0x68], 0x4d0890
mov dword [esp + 0x6c], 0x4d0888
mov dword [esp + 0x70], 0x4d0880
mov dword [esp + 0x74], 0x4d0878
mov dword [esp + 0x78], 0x4d0870
mov dword [esp + 0x7c], 0x4d0868
mov dword [esp + 0x80], 0x4d0860
mov dword [esp + 0x84], 0x4d0858
mov dword [esp + 0x88], 0x4d0850
mov dword [esp + 0x3c], 0x4d084c
mov dword [esp + 0x40], 0x4d0848
mov dword [esp + 0x44], 0x4d0844
mov dword [esp + 0x48], 0x4d0840
mov dword [esp + 0x4c], 0x4d083c
mov dword [esp + 0x50], 0x4d0838
mov dword [esp + 0x54], 0x4d0834
mov dword [esp + 0x58], 0x4d0830
mov dword [esp + 0x5c], 0x4d082c
mov dword [esp + 0x60], 0x4d0828
xor esi, esi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x424010
mov ecx, dword [esp + esi + 0x3c]
mov edx, dword [esp + esi + 0x64]
mov eax, dword [esp + 0xe4]
push ecx
push edx
push eax
call fcn.00402c30
add esp, 0xc
add esi, 4
cmp esi, 0x28
jl 0x423fee
mov edx, dword [esp + 0xe8]
test edx, edx
je 0x424054
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x424054
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [ebp + 0x454]
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4240c7
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x4240c7
mov edi, dword [esp + 0xec]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp + 0x47c]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x20]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x4240c7
mov edi, 0x4d0824
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0xe4]
test edi, edi
je 0x424413
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x38], ecx
je 0x424413
mov eax, 0x4d0820
xor esi, esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x38]
xor ebx, ebx
mov edi, 0x4d07c0
mov edx, 0x4d081c
mov ecx, 0x4d0818
cmp eax, esi
mov dword [esp + 0x20], 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0x4d0814
mov dword [esp + 0x44], 0x4d0810
mov dword [esp + 0x48], 0x4d080c
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 0x4d0808
mov dword [esp + 0x78], 0x4d0804
mov dword [esp + 0x7c], 0x4d0800
mov dword [esp + 0x80], 0x4d07fc
mov dword [esp + 0x84], 0x4d07f8
mov dword [esp + 0x88], 0x4d07f4
mov dword [esp + 0x8c], 0x4d07f0
mov dword [esp + 0x90], 0x4d07ec
mov dword [esp + 0x94], 0x4d07e8
mov dword [esp + 0x98], 0x4d07e4
mov dword [esp + 0x9c], 0x4d07e0
mov dword [esp + 0xa0], 0x4d07dc
mov dword [esp + 0xa4], 0x4d07d8
mov dword [esp + 0xa8], 0x4d07d4
mov dword [esp + 0xac], 0x4d07d0
mov dword [esp + 0xb0], 0x4d07cc
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], esi
jle 0x4243ab
mov dword [esp + 0x10], esi
jmp 0x42421a
xor esi, esi
cmp dword [esp + 0x20], esi
je case.default.0x424284
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xe4]
lea eax, [esp + 0x2c]
push 0xa
lea edi, [ecx + edx]
xor esi, esi
push eax
push edi
mov dword [esp + 0x34], esi
call fcn.00402bd0
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x38]
add esp, 0xc
cmp al, 0x3c
je 0x424425
cmp al, 0x5c
je 0x424364
cmp al, 0x7c
jne case.default.0x424284
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xe4]
movsx eax, byte [ecx + edx + 1]
add eax, 0xffffff9f
cmp eax, 9
ja case.default.0x424284
jmp dword [eax*4 + 0x4246fc]
mov esi, 1
inc esi
inc esi
inc esi
inc esi
inc esi
inc esi
inc esi
inc esi
mov ax, word [ebp + 0x65e]
cmp ax, 0x14
jge 0x4242e2
movsx eax, ax
add eax, 0x8f
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov word [ebp + eax*2], si
movsx eax, word [ebp + 0x65e]
lea ecx, [eax + eax*4]
mov dword [ebp + ecx*2 + 0x598], edx
movsx eax, word [ebp + 0x65e]
lea eax, [eax + eax*4]
mov dword [ebp + eax*2 + 0x59c], ebx
inc word [ebp + 0x65e]
mov cx, word [0x4d07c8]
lea edx, [esp + 0x2c]
push 0xa
push edx
push edi
mov word [edi], cx
mov dword [esp + 0x34], 1
call fcn.00402bd0
add esp, 0xc
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x20], 1
mov al, byte [ebx + ebp + 4]
dec eax
cmp eax, 3
ja case.default.0x42431c
jmp dword [eax*4 + 0x424724]
mov dword [esp + 0x14], 0
lea edi, [esp + 0x3c]
mov esi, dword [edi]
lea eax, [esp + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x424517
test cl, cl
je 0x42435d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x424517
add eax, 2
add esi, 2
test cl, cl
jne 0x424335
xor eax, eax
jmp 0x42451c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xe4]
cmp byte [eax + ecx + 1], 0x6e
jne case.default.0x424284
mov edx, eax
add edx, 2
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc ecx
add eax, 0x64
xor ebx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jl 0x424218
xor esi, esi
mov ecx, dword [esp + 0x18]
mov word [ebp + 0x2776], si
lea eax, [ecx + 1]
cmp ax, si
mov word [ebp + 0x26b2], ax
jbe 0x424405
lea edx, [ebp + 0x2748]
lea ebx, [ebp + 0x6c]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
add ebx, 0x64
repne scasb al, byte es:[edi]
mov ax, word [ebp + 0x2620]
add edx, 4
not ecx
dec ecx
shr ax, 1
imul ecx, eax
mov word [edx - 6], cx
xor ecx, ecx
mov word [edx - 4], 0
mov cx, word [ebp + 0x26b2]
inc esi
cmp esi, ecx
jl 0x4243ce
xor edx, edx
add ebp, 0x276e
mov dword [ebp], edx
mov dword [ebp + 4], edx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xd0
ret 0xc
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0xe4]
mov ecx, 8
xor eax, eax
lea edi, [esp + 0xc0]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xc0]
mov al, byte [edx + esi]
cmp al, 0x3c
jne 0x424451
inc edx
jmp 0x424447
cmp al, 0x3e
je 0x42445b
mov byte [ecx], al
inc ecx
inc edx
jmp 0x424447
movsx eax, word [ebp + 0x594]
inc edx
push 0x14
mov dword [esp + 0x20], edx
lea edx, [eax + eax*2]
lea ecx, [esp + 0xc4]
lea eax, [ebp + edx*8 + 0x4a4]
push eax
push 0x2f
push 1
push ecx
call fcn.00402750
movsx eax, word [ebp + 0x594]
lea ecx, [esp + 0xd4]
lea edx, [eax + eax*2]
lea eax, [ebp + edx*8 + 0x4ba]
push eax
push 0x2f
push 0
push ecx
call fcn.00402ab0
movsx eax, word [ebp + 0x594]
add esp, 0x24
lea edx, [eax + eax*2]
xor eax, eax
mov al, byte [ebp + edx*8 + 0x4ba]
lea ecx, [ebp + edx*8]
mov edx, eax
mov eax, ebx
sub eax, edx
jns 0x4244cc
xor eax, eax
mov dl, byte [esp + 0x18]
mov byte [ecx + 0x4b8], dl
movsx ecx, word [ebp + 0x594]
lea ecx, [ecx + ecx*2]
mov byte [ebp + ecx*8 + 0x4b9], al
or ecx, 0xffffffff
movsx eax, word [ebp + 0x594]
lea edx, [eax + eax*2]
xor eax, eax
lea edx, [ebp + edx*8]
lea edi, [edx + 0x4a4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [edx + 0x4bb], cl
inc word [ebp + 0x594]
jmp 0x424399
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42465e
mov eax, dword [esp + 0x14]
add edi, 4
inc eax
cmp eax, 4
mov dword [esp + 0x14], eax
jl 0x42432f
mov eax, dword [esp + 0x10]
mov edi, 0x4d07c0
add eax, ebx
or ecx, 0xffffffff
mov dword [esp + 0x20], 0
lea edx, [eax + ebp + 0x6c]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
mov ecx, edx
and ecx, 3
add ebx, eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x14], ebx
jmp 0x424399
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4245d8
mov edi, 0x4d07c0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movsx eax, word [ebp + 0x65e]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [eax + eax*4]
mov dword [ebp + ecx*2 + 0x58e], edx
movsx eax, word [ebp + 0x65e]
lea eax, [eax + eax*4]
mov dword [ebp + eax*2 + 0x592], ebx
mov ecx, dword [esp + 0x10]
lea edi, [esp + 0x2c]
add ecx, ebx
lea edx, [ecx + ebp + 0x6c]
jmp 0x4246bd
mov dword [esp + 0x14], 0
lea edi, [esp + 0x64]
mov esi, dword [edi]
lea eax, [esp + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x424621
test cl, cl
je 0x42461d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x424621
add eax, 2
add esi, 2
test cl, cl
jne 0x4245fd
xor eax, eax
jmp 0x424626
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42465e
mov eax, dword [esp + 0x14]
add edi, 4
inc eax
cmp eax, 0x14
mov dword [esp + 0x14], eax
jl 0x4245f7
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
inc ecx
add eax, 0x64
xor ebx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebx
jmp 0x424399
lea edi, [esp + 0x2c]
jmp 0x4246b3
xor edx, edx
lea edi, [esp + 0xb4]
mov esi, dword [edi]
lea eax, [esp + 0x2c]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x424697
test cl, cl
je 0x424693
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x424697
add eax, 2
add esi, 2
test cl, cl
jne 0x424673
xor eax, eax
jmp 0x42469c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4246ab
inc edx
add edi, 4
cmp edx, 3
jl 0x42466d
jmp 0x42463b
mov ebx, dword [esp + 0x14]
lea edi, [esp + 0x2c]
mov eax, dword [esp + 0x10]
add eax, ebx
lea edx, [eax + ebp + 0x6c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
mov ecx, edx
and ecx, 3
add ebx, eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
add ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x424399