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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x58d5c4
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x600f80]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
mov eax, dword [0x600f80]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov dword [esp + 0x3c], edx
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edi, dword [eax + 0x18]
cmp dword [edx + 4], 0
mov byte [esp + 0x12], 0
seta byte [esp + 0x11]
cmp dword [eax + 0x10], 0
lea eax, [edi + 9]
sete byte [esp + 0x13]
test eax, eax
je 0x4586c8
add eax, 0xfffffff7
jmp 0x4586ca
xor eax, eax
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x44]
test esi, esi
je 0x4586d9
add esi, 0xffffffc0
jmp 0x4586db
xor esi, esi
add edi, 9
je 0x4586e5
add edi, 0xfffffff7
jmp 0x4586e7
xor edi, edi
mov edi, dword [edi + 4]
cmp esi, edi
je 0x45890e
mov eax, dword [0xa98aa0]
test al, 1
jne 0x458734
or dword [0xa98aa0], 1
mov edx, str._xmlattr_
mov dword [esp + 0x90], 0
mov ecx, 0xa98aa4
call fcn.0045c6a0
push 0x5934b0
call fcn.0053de3b
add esp, 4
mov dword [esp + 0x90], 0xffffffff
cmp dword [0xa98ab8], 0x10
mov edx, 0xa98aa4
mov eax, dword [esi + 0x10]
cmovae edx, dword [0xa98aa4]
cmp dword [esi + 0x14], 0x10
jb 0x458754
mov ebx, dword [esi]
jmp 0x458756
mov ebx, esi
mov ecx, dword [0xa98ab4]
cmp eax, ecx
cmovb ecx, eax
test ecx, ecx
je 0x4587c3
sub ecx, 4
jb 0x458781
lea ebx, [ebx]
mov eax, dword [ebx]
cmp eax, dword [edx]
jne 0x458786
add ebx, 4
add edx, 4
sub ecx, 4
jae 0x458770
cmp ecx, 0xfffffffc
je 0x4587ba
mov al, byte [ebx]
cmp al, byte [edx]
jne 0x4587b3
cmp ecx, 0xfffffffd
je 0x4587ba
mov al, byte [ebx + 1]
cmp al, byte [edx + 1]
jne 0x4587b3
cmp ecx, 0xfffffffe
je 0x4587ba
mov al, byte [ebx + 2]
cmp al, byte [edx + 2]
jne 0x4587b3
cmp ecx, 0xffffffff
je 0x4587ba
mov al, byte [ebx + 3]
cmp al, byte [edx + 3]
je 0x4587ba
sbb eax, eax
or eax, 1
jmp 0x4587bc
xor eax, eax
test eax, eax
jne 0x4587e0
mov eax, dword [esi + 0x10]
cmp eax, dword [0xa98ab4]
jae 0x4587d0
or eax, 0xffffffff
jmp 0x4587de
mov ecx, dword [esi + 0x10]
xor eax, eax
cmp ecx, dword [0xa98ab4]
setne al
test eax, eax
sete al
test al, al
sete al
test al, al
je 0x4588e9
mov eax, dword [0xa98aec]
mov byte [esp + 0x13], 0
test al, 1
jne 0x458837
or dword [0xa98aec], 1
mov edx, str._xmltext_
mov dword [esp + 0x90], 1
mov ecx, 0xa98abc
call fcn.0045c6a0
push 0x593450
call fcn.0053de3b
add esp, 4
mov dword [esp + 0x90], 0xffffffff
cmp dword [0xa98ad0], 0x10
mov edx, 0xa98abc
mov ecx, dword [esi + 0x10]
cmovae edx, dword [0xa98abc]
cmp dword [esi + 0x14], 0x10
jb 0x458857
mov ebx, dword [esi]
jmp 0x458859
mov ebx, esi
mov eax, dword [0xa98acc]
cmp ecx, eax
cmovb eax, ecx
test eax, eax
je 0x4588c3
sub eax, 4
jb 0x458881
lea esp, [esp]
mov ecx, dword [ebx]
cmp ecx, dword [edx]
jne 0x458886
add ebx, 4
add edx, 4
sub eax, 4
jae 0x458870
cmp eax, 0xfffffffc
je 0x4588ba
mov cl, byte [ebx]
cmp cl, byte [edx]
jne 0x4588b3
cmp eax, 0xfffffffd
je 0x4588ba
mov cl, byte [ebx + 1]
cmp cl, byte [edx + 1]
jne 0x4588b3
cmp eax, 0xfffffffe
je 0x4588ba
mov cl, byte [ebx + 2]
cmp cl, byte [edx + 2]
jne 0x4588b3
cmp eax, 0xffffffff
je 0x4588ba
mov al, byte [ebx + 3]
cmp al, byte [edx + 3]
je 0x4588ba
sbb eax, eax
or eax, 1
jmp 0x4588bc
xor eax, eax
test eax, eax
jne 0x4588dd
mov ecx, dword [esi + 0x10]
cmp ecx, dword [0xa98acc]
jae 0x4588d0
or eax, 0xffffffff
jmp 0x4588db
xor eax, eax
cmp ecx, dword [0xa98acc]
setne al
test eax, eax
sete al
test al, al
sete al
test al, al
jne 0x458901
mov esi, dword [esi + 0x44]
test esi, esi
je 0x4588f5
add esi, 0xffffffc0
jmp 0x4588f7
xor esi, esi
cmp esi, edi
jne 0x4586f2
jmp 0x458906
mov byte [esp + 0x12], 1
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
cmp dword [esi + 0x10], 0
jne 0x4589db
mov eax, dword [esi + 0x18]
add eax, 9
je 0x458929
add eax, 0xfffffff7
jmp 0x45892b
xor eax, eax
cmp dword [eax + 0xc], 0
jne 0x4589db
mov ecx, dword [ebp + 0xc]
test ecx, ecx
js 0x459358
mov al, byte [edx]
mov byte [esp + 0x18], al
mov eax, dword [edx + 4]
push dword [esp + 0x18]
imul eax, ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
push eax
call fcn.0041ab90
lea edx, [esp + 0x20]
mov dword [esp + 0x90], 2
mov ecx, ebx
call fcn.0041b2e0
mov dword [esp + 0x90], 0xffffffff
cmp dword [esp + 0x34], 0x10
jb 0x4589a3
push dword [esp + 0x20]
call fcn.0053e195
add esp, 4
mov dl, 0x3c
mov ecx, ebx
call fcn.00457410
mov edx, dword [esp + 0x3c]
mov ecx, eax
call fcn.0041b2e0
mov dl, 0x2f
mov ecx, eax
call fcn.00457410
mov dl, 0x3e
mov ecx, eax
call fcn.00457410
cmp byte [esp + 0x11], 0
je 0x459358
mov ecx, ebx
jmp 0x459351
mov ecx, dword [ebp + 0xc]
test ecx, ecx
js 0x458c93
mov al, byte [edx]
mov byte [esp + 0x38], al
mov eax, dword [edx + 4]
push dword [esp + 0x38]
imul eax, ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
push eax
call fcn.0041ab90
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x20]
mov ecx, edi
mov dword [esp + 0x90], 3
call fcn.0041b2e0
mov dword [esp + 0x90], 0xffffffff
cmp dword [esp + 0x34], 0x10
jb 0x458a4d
push dword [esp + 0x20]
call fcn.0053e195
add esp, 4
mov dl, 0x3c
mov ecx, edi
call fcn.00457410
mov edx, dword [esp + 0x3c]
mov ecx, eax
call fcn.0041b2e0
mov eax, dword [0xa98aa0]
test al, 1
jne 0x458aa4
or eax, 1
mov dword [0xa98aa0], eax
mov edx, str._xmlattr_
mov dword [esp + 0x90], 4
mov ecx, 0xa98aa4
call fcn.0045c6a0
push 0x5934b0
call fcn.0053de3b
add esp, 4
mov dword [esp + 0x90], 0xffffffff
push 0xffffffffffffffff
push 0
push 0xa98aa4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], 0
mov byte [esp + 0x4c], 0
call fcn.004083b0
cmp dword [esp + 0x54], 0x10
lea eax, [esp + 0x40]
mov byte [esp + 0x58], 0x2e
cmovae eax, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x40]
mov dword [esp + 0x90], 5
push eax
lea eax, [esp + 0x7c]
mov ecx, esi
push eax
call fcn.00459ca0
mov byte [esp + 0x90], 7
cmp dword [esp + 0x54], 0x10
jb 0x458b19
push dword [esp + 0x40]
call fcn.0053e195
add esp, 4
cmp byte [esp + 0x78], 0
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
je 0x458c3a
mov ebx, dword [esp + 0x7c]
mov eax, dword [ebx + 0x18]
add eax, 9
je 0x458b4a
add eax, 0xfffffff7
jmp 0x458b4c
xor eax, eax
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x44]
test esi, esi
je 0x458b5b
add esi, 0xffffffc0
jmp 0x458b60
xor esi, esi
lea ecx, [ecx]
mov eax, dword [ebx + 0x18]
add eax, 9
je 0x458b6d
add eax, 0xfffffff7
jmp 0x458b6f
xor eax, eax
cmp esi, dword [eax + 4]
je 0x458c36
lea eax, [esp + 0x60]
push eax
lea ecx, [esi + 0x18]
call fcn.0045ad70
mov edx, eax
mov byte [esp + 0x90], 8
lea ecx, [esp + 0x20]
call fcn.0045ada0
mov edi, eax
mov ecx, dword [esp + 0x14]
mov dl, 0x20
mov byte [esp + 0x90], 9
call fcn.00457410
mov edx, esi
mov ecx, eax
call fcn.0041b2e0
mov dl, 0x3d
mov ecx, eax
call fcn.00457410
mov dl, 0x22
mov ecx, eax
call fcn.00457410
mov edx, edi
mov ecx, eax
call fcn.0041b2e0
mov dl, 0x22
mov ecx, eax
call fcn.00457410
cmp dword [esp + 0x34], 0x10
jb 0x458bed
push dword [esp + 0x20]
call fcn.0053e195
add esp, 4
mov byte [esp + 0x90], 7
cmp dword [esp + 0x74], 0x10
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
jb 0x458c1d
push dword [esp + 0x60]
call fcn.0053e195
add esp, 4
test esi, esi
je 0x458c2c
add esi, 0x40
mov esi, dword [esi + 4]
jmp 0x458b52
xor esi, esi
mov esi, dword [esi + 4]
jmp 0x458b52
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x13], 0
mov ecx, edi
mov dword [esp + 0x90], 0xffffffff
je 0x458c71
mov dl, 0x2f
call fcn.00457410
mov dl, 0x3e
mov ecx, eax
call fcn.00457410
mov bh, byte [esp + 0x11]
test bh, bh
je 0x458c9b
mov dl, 0xa
mov ecx, edi
call fcn.00457410
jmp 0x458c9b
mov dl, 0x3e
call fcn.00457410
mov al, byte [esp + 0x12]
mov bh, byte [esp + 0x11]
test al, al
je 0x458c9f
test bh, bh
je 0x458c9f
mov dl, 0xa
mov ecx, edi
call fcn.00457410
jmp 0x458c9b
mov edi, dword [esp + 0x14]
mov bh, byte [esp + 0x11]
mov al, byte [esp + 0x12]
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x10], 0
je 0x458d9f
test al, al
je 0x458cb9
test bh, bh
je 0x458cb9
mov bl, 1
jmp 0x458cbb
xor bl, bl
lea eax, [esp + 0x40]
push eax
call fcn.0045ad70
mov esi, eax
mov dword [esp + 0x90], 0xa
test bl, bl
je 0x458d39
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
mov cl, byte [eax]
mov byte [esp + 0x38], cl
mov ecx, dword [ebp + 0xc]
push dword [esp + 0x38]
inc ecx
imul ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x28]
call fcn.0041ab90
lea edx, [esp + 0x20]
mov byte [esp + 0x90], 0xb
mov ecx, edi
call fcn.0041b2e0
mov byte [esp + 0x90], 0xa
cmp dword [esp + 0x34], 0x10
jb 0x458d39
push dword [esp + 0x20]
call fcn.0053e195
add esp, 4
mov edx, esi
lea ecx, [esp + 0x60]
call fcn.0045ada0
mov edx, eax
mov byte [esp + 0x90], 0xc
mov ecx, edi
call fcn.0041b2e0
mov byte [esp + 0x90], 0xa
cmp dword [esp + 0x74], 0x10
jb 0x458d70
push dword [esp + 0x60]
call fcn.0053e195
add esp, 4
test bl, bl
je 0x458d7d
mov dl, 0xa
mov ecx, edi
call fcn.00457410
mov dword [esp + 0x90], 0xffffffff
cmp dword [esp + 0x54], 0x10
jb 0x458d9b
push dword [esp + 0x40]
call fcn.0053e195
add esp, 4
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x18]
add eax, 9
je 0x458dac
add eax, 0xfffffff7
jmp 0x458dae
xor eax, eax
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x44]
test esi, esi
je 0x458dbd
add esi, 0xffffffc0
jmp 0x458dc0
xor esi, esi
nop
mov eax, dword [ecx + 0x18]
add eax, 9
je 0x458dcd
add eax, 0xfffffff7
jmp 0x458dcf
xor eax, eax
cmp esi, dword [eax + 4]
je 0x459300
mov eax, dword [0xa98aa0]
test al, 1
jne 0x458e1a
or dword [0xa98aa0], 1
mov edx, str._xmlattr_
mov dword [esp + 0x90], 0xd
mov ecx, 0xa98aa4
call fcn.0045c6a0
push 0x5934b0
call fcn.0053de3b
add esp, 4
mov dword [esp + 0x90], 0xffffffff
cmp dword [0xa98ab8], 0x10
mov edx, 0xa98aa4
mov ebx, dword [esi + 0x10]
cmovae edx, dword [0xa98aa4]
cmp dword [esi + 0x14], 0x10
jb 0x458e3a
mov edi, dword [esi]
jmp 0x458e3c
mov edi, esi
mov ecx, dword [0xa98ab4]
cmp ebx, ecx
cmovb ecx, ebx
test ecx, ecx
je 0x458ea0
sub ecx, 4
jb 0x458e61
mov eax, dword [edi]
cmp eax, dword [edx]
jne 0x458e66
add edi, 4
add edx, 4
sub ecx, 4
jae 0x458e50
cmp ecx, 0xfffffffc
je 0x458e9a
mov al, byte [edi]
cmp al, byte [edx]
jne 0x458e93
cmp ecx, 0xfffffffd
je 0x458e9a
mov al, byte [edi + 1]
cmp al, byte [edx + 1]
jne 0x458e93
cmp ecx, 0xfffffffe
je 0x458e9a
mov al, byte [edi + 2]
cmp al, byte [edx + 2]
jne 0x458e93
cmp ecx, 0xffffffff
je 0x458e9a
mov al, byte [edi + 3]
cmp al, byte [edx + 3]
je 0x458e9a
sbb eax, eax
or eax, 1
jmp 0x458e9c
xor eax, eax
test eax, eax
jne 0x458eba
cmp ebx, dword [0xa98ab4]
jae 0x458ead
or eax, 0xffffffff
jmp 0x458eb8
xor eax, eax
cmp ebx, dword [0xa98ab4]
setne al
test eax, eax
sete al
test al, al
jne 0x4592da
mov eax, dword [0xa98af0]
test al, 1
jne 0x458f08
or eax, 1
mov dword [0xa98af0], eax
mov edx, str._xmlcomment_
mov dword [esp + 0x90], 0xe
mov ecx, 0xa98ad4
call fcn.0045c6a0
push 0x5933f0
call fcn.0053de3b
add esp, 4
mov dword [esp + 0x90], 0xffffffff
cmp dword [0xa98ae8], 0x10
mov ecx, 0xa98ad4
mov eax, dword [esi + 0x10]
cmovae ecx, dword [0xa98ad4]
cmp dword [esi + 0x14], 0x10
jb 0x458f28
mov edi, dword [esi]
jmp 0x458f2a
mov edi, esi
mov ebx, dword [0xa98ae4]
cmp eax, ebx
mov edx, ebx
cmovb edx, eax
test edx, edx
je 0x458f93
sub edx, 4
jb 0x458f51
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x458f56
add edi, 4
add ecx, 4
sub edx, 4
jae 0x458f40
cmp edx, 0xfffffffc
je 0x458f8a
mov al, byte [edi]
cmp al, byte [ecx]
jne 0x458f83
cmp edx, 0xfffffffd
je 0x458f8a
mov al, byte [edi + 1]
cmp al, byte [ecx + 1]
jne 0x458f83
cmp edx, 0xfffffffe
je 0x458f8a
mov al, byte [edi + 2]
cmp al, byte [ecx + 2]
jne 0x458f83
cmp edx, 0xffffffff
je 0x458f8a
mov al, byte [edi + 3]
cmp al, byte [ecx + 3]
je 0x458f8a
sbb eax, eax
or eax, 1
jmp 0x458f8c
xor eax, eax
test eax, eax
jne 0x458fa6
mov eax, dword [esi + 0x10]
cmp eax, ebx
jae 0x458f9c
or eax, 0xffffffff
jmp 0x458fa4
xor eax, eax
cmp dword [esi + 0x10], ebx
setne al
test eax, eax
sete al
test al, al
je 0x4590ba
lea eax, [esp + 0x40]
push eax
lea ecx, [esi + 0x18]
call fcn.0045ad70
mov edi, eax
mov bh, byte [esp + 0x11]
mov dword [esp + 0x90], 0xf
test bh, bh
je 0x459038
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
mov cl, byte [edx]
mov byte [esp + 0x38], cl
mov ecx, dword [ebp + 0xc]
push dword [esp + 0x38]
inc ecx
imul ecx, dword [edx + 4]
push ecx
lea ecx, [esp + 0x28]
call fcn.0041ab90
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
mov byte [esp + 0x90], 0x10
call fcn.0041b2e0
mov byte [esp + 0x90], 0xf
cmp dword [esp + 0x34], 0x10
jb 0x459038
push dword [esp + 0x20]
call fcn.0053e195
add esp, 4
mov ecx, dword [esp + 0x14]
mov dl, 0x3c
call fcn.00457410
mov dl, 0x21
mov ecx, eax
call fcn.00457410
mov dl, 0x2d
mov ecx, eax
call fcn.00457410
mov dl, 0x2d
mov ecx, eax
call fcn.00457410
mov edx, edi
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.0041b2e0
mov dl, 0x2d
mov ecx, edi
call fcn.00457410
mov dl, 0x2d
mov ecx, eax
call fcn.00457410
mov dl, 0x3e
mov ecx, eax
call fcn.00457410
test bh, bh
je 0x459093
mov dl, 0xa
mov ecx, edi
call fcn.00457410
mov dword [esp + 0x90], 0xffffffff
cmp dword [esp + 0x54], 0x10
jb 0x4592e2
push dword [esp + 0x40]
call fcn.0053e195
add esp, 4
jmp 0x4592e2
mov eax, dword [0xa98aec]
test al, 1
jne 0x4590fc
or dword [0xa98aec], 1
mov edx, str._xmltext_
mov dword [esp + 0x90], 0x11
mov ecx, 0xa98abc
call fcn.0045c6a0
push 0x593450
call fcn.0053de3b
add esp, 4
mov dword [esp + 0x90], 0xffffffff
cmp dword [0xa98ad0], 0x10
mov edx, 0xa98abc
mov ebx, dword [esi + 0x10]
cmovae edx, dword [0xa98abc]
cmp dword [esi + 0x14], 0x10
jb 0x45911c
mov edi, dword [esi]
jmp 0x45911e
mov edi, esi
mov eax, dword [0xa98acc]
cmp ebx, eax
cmovb eax, ebx
test eax, eax
je 0x459181
sub eax, 4
jb 0x459142
mov ecx, dword [edi]
cmp ecx, dword [edx]
jne 0x459147
add edi, 4
add edx, 4
sub eax, 4
jae 0x459131
cmp eax, 0xfffffffc
je 0x45917b
mov cl, byte [edi]
cmp cl, byte [edx]
jne 0x459174
cmp eax, 0xfffffffd
je 0x45917b
mov cl, byte [edi + 1]
cmp cl, byte [edx + 1]
jne 0x459174
cmp eax, 0xfffffffe
je 0x45917b
mov cl, byte [edi + 2]
cmp cl, byte [edx + 2]
jne 0x459174
cmp eax, 0xffffffff
je 0x45917b
mov al, byte [edi + 3]
cmp al, byte [edx + 3]
je 0x45917b
sbb eax, eax
or eax, 1
jmp 0x45917d
xor eax, eax
test eax, eax
jne 0x45919b
cmp ebx, dword [0xa98acc]
jae 0x45918e
or eax, 0xffffffff
jmp 0x459199
xor eax, eax
cmp ebx, dword [0xa98acc]
setne al
test eax, eax
sete al
test al, al
je 0x4592bb
cmp byte [esp + 0x12], 0
mov bh, byte [esp + 0x11]
je 0x4591b9
test bh, bh
je 0x4591b9
mov bl, 1
jmp 0x4591bb
xor bl, bl
lea eax, [esp + 0x60]
push eax
lea ecx, [esi + 0x18]
call fcn.0045ad70
mov edi, eax
mov dword [esp + 0x90], 0x12
test bl, bl
je 0x45923e
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
mov cl, byte [edx]
mov byte [esp + 0x78], cl
mov ecx, dword [ebp + 0xc]
push dword [esp + 0x78]
inc ecx
imul ecx, dword [edx + 4]
push ecx
lea ecx, [esp + 0x28]
call fcn.0041ab90
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x20]
mov byte [esp + 0x90], 0x13
call fcn.0041b2e0
mov byte [esp + 0x90], 0x12
cmp dword [esp + 0x34], 0x10
jb 0x45923e
push dword [esp + 0x20]
call fcn.0053e195
add esp, 4
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.0045ada0
mov edi, dword [esp + 0x14]
mov edx, eax
mov ecx, edi
mov byte [esp + 0x90], 0x14
call fcn.0041b2e0
mov byte [esp + 0x90], 0x12
cmp dword [esp + 0x54], 0x10
jb 0x459279
push dword [esp + 0x40]
call fcn.0053e195
add esp, 4
test bl, bl
je 0x459286
mov dl, 0xa
mov ecx, edi
call fcn.00457410
mov dword [esp + 0x90], 0xffffffff
cmp dword [esp + 0x74], 0x10
jb 0x4592a4
push dword [esp + 0x60]
call fcn.0053e195
add esp, 4
mov dword [esp + 0x74], 0xf
mov dword [esp + 0x70], 0
mov byte [esp + 0x60], 0
jmp 0x4592e2
push dword [esp + 0x1c]
mov eax, dword [ebp + 0xc]
mov edx, esi
mov edi, dword [esp + 0x18]
inc eax
push eax
lea eax, [esi + 0x18]
mov ecx, edi
push eax
call fcn.00458650
add esp, 0xc
jmp 0x4592de
mov edi, dword [esp + 0x14]
mov bh, byte [esp + 0x11]
mov esi, dword [esi + 0x44]
test esi, esi
je 0x4592f5
mov ecx, dword [esp + 0x18]
add esi, 0xffffffc0
jmp 0x458dc0
mov ecx, dword [esp + 0x18]
xor esi, esi
jmp 0x458dc0
mov eax, dword [ebp + 0xc]
test eax, eax
js 0x459358
cmp byte [esp + 0x13], 0
jne 0x459358
cmp byte [esp + 0x12], 0
je 0x459325
push dword [esp + 0x1c]
mov edx, eax
mov ecx, edi
call fcn.0045ace0
add esp, 4
mov dl, 0x3c
mov ecx, edi
call fcn.00457410
mov dl, 0x2f
mov ecx, eax
call fcn.00457410
mov edx, dword [esp + 0x3c]
mov ecx, eax
call fcn.0041b2e0
mov dl, 0x3e
mov ecx, eax
call fcn.00457410
test bh, bh
je 0x459358
mov ecx, edi
mov dl, 0xa
call fcn.00457410
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0053cd12
mov esp, ebp
pop ebp
ret