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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
push ebx
mov eax, ecx
mov ebx, edx
mov edx, dword [ebp + 0x10]
xor ecx, ecx
push esi
mov dword [esp + 0x10], eax
xor esi, esi
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, 0x9e
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], ecx
push edi
mov edi, dword [ebp + 0x14]
mov dword [edi + 0x2c], ecx
lea eax, [edi + 0x2c]
mov dword [esp + 0x54], eax
mov dword [edi + 0x1c], 0xffffffff
test ebx, ebx
je 0x458840
test byte [edx + 0x18], 6
je 0x4587a1
mov dword [esp + 0x2c], ecx
jmp 0x458840
mov eax, dword [esp + 0x30]
xor edi, edi
cmp dword [eax + 0x14], ecx
jle 0x45883a
mov edx, dword [eax + 0x10]
movzx eax, byte [ebx]
mov dword [esp + 0x38], edx
movzx ecx, byte [eax + 0x50c230]
mov eax, edx
mov dword [esp + 0x40], ecx
mov edx, dword [eax]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x50c230]
sub eax, ecx
jne 0x45880b
mov esi, dword [esp + 0x2c]
sub esi, edx
nop
test bl, bl
je 0x458803
movzx eax, byte [esi + edx + 1]
inc edx
movzx ecx, byte [eax + 0x50c230]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x50c230]
sub eax, ecx
je 0x4587e0
jmp 0x458807
test eax, eax
je 0x458822
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
inc edi
mov eax, dword [esp + 0x38]
add eax, 0x10
mov dword [esp + 0x38], eax
cmp edi, dword [edx + 0x14]
jl 0x4587c7
jmp 0x458833
mov ecx, dword [esp + 0x30]
add edi, edi
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edi*8 + 0xc]
mov dword [esp + 0x34], eax
mov edx, dword [ebp + 0x10]
xor esi, esi
xor ecx, ecx
mov edi, dword [ebp + 0x14]
nop dword [eax]
mov edx, dword [edx + 4]
mov dword [esp + 0x5c], edx
test edx, edx
je 0x458b98
xor ecx, ecx
lea eax, [edx + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
cmp dword [edx], ecx
jle 0x458b70
mov ebx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x38], edx
test ebx, ebx
je 0x4588fd
test dword [ebx + 8], 0x800
je 0x4588fd
mov ebx, dword [ebx]
xor esi, esi
mov dword [esp + 0x40], 0
cmp dword [ebx], esi
jle 0x4588f0
lea edi, [ebx + 0xc]
push dword [esp + 0x2c]
mov edx, dword [ebp + 0xc]
push dword [ebp + 8]
mov ecx, dword [edi]
call fcn.00458630
add esp, 8
test eax, eax
je 0x4588d0
mov eax, dword [esp + 0x18]
inc dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x20], 2
mov word [eax + 0x20], si
mov eax, 1
mov dword [esp + 0x40], eax
jmp 0x4588d4
mov eax, dword [esp + 0x40]
inc esi
add edi, 0x18
cmp esi, dword [ebx]
jl 0x458892
mov ecx, dword [esp + 0x24]
test eax, eax
mov eax, dword [esp + 0x18]
jne 0x458b51
mov edx, dword [esp + 0x38]
mov edi, dword [ebp + 8]
test edi, edi
je 0x458b51
jmp 0x458900
mov edi, dword [ebp + 8]
cmp dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x4c], ebx
je 0x45891c
mov ebx, dword [esp + 0x34]
cmp dword [edx + 0x48], ebx
jne 0x458b51
test edi, edi
je 0x4589b8
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x45892f
mov edx, ecx
jmp 0x458931
mov edx, dword [edx]
mov bl, byte [edx]
movzx eax, bl
movzx esi, byte [eax + 0x50c230]
movzx eax, byte [edi]
movzx eax, byte [eax + 0x50c230]
sub esi, eax
jne 0x458b49
sub edi, edx
test bl, bl
je 0x458977
movzx eax, byte [edi + edx + 1]
inc edx
mov bl, byte [edx]
movzx ecx, byte [eax + 0x50c230]
movzx eax, bl
movzx esi, byte [eax + 0x50c230]
sub esi, ecx
je 0x458951
jmp 0x458b49
test esi, esi
jne 0x458b49
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp byte [eax + 0xc4], 2
jb 0x4589bc
cmp dword [ecx + 0xc], esi
je 0x4589bc
mov eax, dword [eax + 0x10c]
test eax, eax
je 0x4589bc
mov edx, dword [esp + 0x54]
cmp dword [eax], edx
je 0x4589b0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4589a3
jmp 0x4589bc
mov dword [eax], 0
jmp 0x4589bc
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x20]
mov eax, ecx
cmp dword [esp + 0x4c], 0
cmovne eax, dword [esp + 0x1c]
xor edi, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], edi
mov edx, dword [eax + 4]
movsx eax, word [eax + 0x2a]
mov dword [esp + 0x4c], edx
test eax, eax
jle 0x458b49
mov esi, dword [ebp + 0xc]
movzx eax, byte [esi]
movzx ecx, byte [eax + 0x50c230]
mov dword [esp + 0x28], ecx
nop
mov edx, dword [edx]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x50c230]
sub eax, ecx
jne 0x458b21
sub esi, edx
test bl, bl
je 0x458a3e
movzx eax, byte [esi + edx + 1]
inc edx
movzx ecx, byte [eax + 0x50c230]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x50c230]
sub eax, ecx
je 0x458a18
jmp 0x458b1a
test eax, eax
jne 0x458b1a
mov esi, dword [esp + 0x10]
cmp esi, 1
jne 0x458ae5
mov eax, dword [esp + 0x18]
test byte [eax + 0x24], 4
jne 0x458b1a
mov eax, dword [eax + 0x34]
test eax, eax
je 0x458ae5
mov ecx, dword [eax + 4]
xor ebx, ebx
mov dword [esp + 0x58], ecx
test ecx, ecx
jle 0x458ae5
mov eax, dword [eax]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov esi, dword [eax]
mov al, byte [esi]
movzx ecx, al
movzx ecx, byte [ecx + 0x50c230]
sub ecx, edx
jne 0x458acb
mov edi, dword [ebp + 0xc]
sub edi, esi
nop word [eax + eax]
test al, al
je 0x458ac3
movzx ecx, byte [edi + esi + 1]
inc esi
movzx edx, byte [ecx + 0x50c230]
mov al, byte [esi]
movzx ecx, al
movzx ecx, byte [ecx + 0x50c230]
sub ecx, edx
je 0x458aa0
jmp 0x458ac7
test ecx, ecx
je 0x458b16
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
inc ebx
add eax, 8
mov dword [esp + 0x48], eax
cmp ebx, dword [esp + 0x58]
jl 0x458a83
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
inc esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], esi
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x458c63
mov edi, dword [ebp + 0x14]
or eax, 0xffffffff
mov ecx, dword [esp + 0x24]
mov word [edi + 0x20], ax
mov eax, dword [esp + 0x18]
jmp 0x458b58
mov edi, dword [esp + 0x40]
mov esi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x38]
inc edi
mov edx, dword [esp + 0x4c]
add edx, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], edx
movsx eax, word [ebx + 0x2a]
cmp edi, eax
jl 0x458a00
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edi, dword [ebp + 0x14]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
inc ecx
add eax, 0x48
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [edx]
jl 0x458864
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x458b98
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x1c], eax
mov eax, dword [ecx + 0x10]
mov dword [edi + 0x2c], eax
test byte [ecx + 0x24], 8
je 0x458b91
or dword [edi + 4], 0x100000
mov eax, dword [eax + 0x48]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x2c], 0
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x20]
jne 0x458ef4
test edi, edi
je 0x458ef4
test eax, eax
jne 0x458ef4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
cmp dword [ecx + 0x78], eax
je 0x458c9f
mov bh, byte [ecx + 0x8c]
cmp bh, 0x75
je 0x458c1a
movzx eax, byte [edi]
mov edx, 0x6e
mov esi, 0x511cd4
movzx eax, byte [eax + 0x50c230]
sub edx, eax
jne 0x458c1a
mov bl, 0x6e
sub edi, esi
test bl, bl
je 0x458c7a
movzx eax, byte [edi + esi + 1]
inc esi
mov bl, byte [esi]
movzx ecx, byte [eax + 0x50c230]
movzx eax, bl
movzx edx, byte [eax + 0x50c230]
sub edx, ecx
je 0x458bf2
mov edi, dword [ebp + 8]
cmp bh, 0x74
je 0x458c9f
movzx eax, byte [edi]
mov edx, 0x6f
mov esi, 0x511cd8
movzx eax, byte [eax + 0x50c230]
sub edx, eax
jne 0x458c9f
mov bl, 0x6f
sub edi, esi
nop
test bl, bl
je 0x458c8a
movzx eax, byte [edi + esi + 1]
inc esi
mov bl, byte [esi]
movzx ecx, byte [eax + 0x50c230]
movzx eax, bl
movzx edx, byte [eax + 0x50c230]
sub edx, ecx
je 0x458c40
jmp 0x458c9f
mov ecx, dword [esp + 0x24]
movzx eax, di
mov edi, dword [ebp + 0x14]
mov word [edi + 0x20], ax
mov eax, dword [esp + 0x18]
jmp 0x458b58
test edx, edx
jne 0x458c17
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], 1
jmp 0x458c94
test edx, edx
jne 0x458c9f
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x10]
mov ecx, 0x200
test word [eax + 0x18], cx
je 0x458cf9
cmp dword [eax + 8], 0
je 0x458cf9
mov ecx, dword [ebp + 8]
mov edx, 0x65
mov esi, 0x511cdc
movzx eax, byte [ecx]
movzx eax, byte [eax + 0x50c230]
sub edx, eax
jne 0x458cf9
mov edi, ecx
mov bl, 0x65
sub edi, esi
test bl, bl
je 0x458d7a
movzx eax, byte [edi + esi + 1]
inc esi
mov bl, byte [esi]
movzx ecx, byte [eax + 0x50c230]
movzx eax, bl
movzx edx, byte [eax + 0x50c230]
sub edx, ecx
je 0x458cd4
mov edi, dword [esp + 0x18]
test edi, edi
je 0x458ee5
movsx ebx, word [edi + 0x2a]
xor esi, esi
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ebx
test ebx, ebx
jle 0x458dc9
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
movzx edi, byte [eax + 0x50c230]
mov dword [esp + 0x4c], edi
nop
mov edx, dword [ecx]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x50c230]
sub eax, edi
jne 0x458db1
mov edi, dword [ebp + 0xc]
sub edi, edx
test bl, bl
je 0x458da1
movzx eax, byte [edi + edx + 1]
inc edx
movzx ecx, byte [eax + 0x50c230]
mov bl, byte [edx]
movzx eax, bl
movzx eax, byte [eax + 0x50c230]
sub eax, ecx
je 0x458d57
jmp 0x458da9
test edx, edx
jne 0x458cf9
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 0x18]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], edi
mov dword [eax + 0x1c], 2
jmp 0x458cfd
test eax, eax
je 0x458e33
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
inc esi
add ecx, 0x10
mov dword [esp + 0x40], ecx
cmp esi, ebx
jl 0x458d40
mov edi, dword [esp + 0x18]
cmp esi, ebx
jl 0x458ded
mov ecx, dword [ebp + 0xc]
call fcn.0045d330
test eax, eax
je 0x458de5
test byte [edi + 0x24], 0x40
mov eax, 0xffffffff
cmove esi, eax
cmp esi, ebx
jge 0x458ee5
mov ecx, dword [ebp + 0x14]
inc dword [esp + 0x10]
mov eax, dword [ecx + 0x1c]
cmp eax, 2
jne 0x458e7c
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0x10]
cmp byte [eax + 0xc4], 2
jb 0x458e4e
mov eax, dword [esp + 0x20]
mov word [ecx + 0x20], si
mov esi, dword [esp + 0x10]
mov dword [ecx + 0x2c], edi
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
mov dword [esp + 0x3c], 0x9e
jmp 0x458ef7
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x48]
movsx eax, word [edi + 0x28]
cmp esi, eax
mov eax, 0xffffffff
cmove esi, eax
jmp 0x458dc9
mov eax, dword [edx + 8]
mov edi, dword [ebp + 8]
mov dword [esp + 0x3c], 0xa4
mov eax, dword [eax + 0x18]
add eax, esi
or dword [ecx + 4], 0x400000
mov esi, dword [esp + 0x10]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
jmp 0x458ef7
test esi, esi
jns 0x458e86
mov byte [ecx + 1], 0x44
jmp 0x458ed6
test eax, eax
jne 0x458eb6
cmp esi, 0x20
jl 0x458e9e
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
or dword [edx + 0x84], eax
jmp 0x458ed6
mov edx, dword [esp + 0x14]
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, dword [ebp + 0x14]
or dword [edx + 0x84], eax
jmp 0x458ed6
cmp esi, 0x20
jl 0x458ec0
or eax, 0xffffffff
jmp 0x458ecc
mov ecx, esi
mov eax, 1
shl eax, cl
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x14]
or dword [edx + 0x88], eax
mov dword [ecx + 0x2c], edi
mov word [ecx + 0x20], si
mov dword [esp + 0x3c], 0x4d
mov eax, dword [esp + 0x20]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
test esi, esi
jne 0x458f3c
cmp eax, 1
jne 0x458f3c
test ecx, ecx
je 0x458f3c
test byte [edx + 0x18], 0x20
jne 0x458f3c
mov ecx, ebx
call fcn.0045d330
test eax, eax
je 0x458f3c
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x10]
test byte [eax + 0x24], 0x40
jne 0x458f3c
mov eax, dword [ebp + 0x14]
mov esi, 1
or ecx, 0xffffffff
mov dword [esp + 0x10], esi
mov word [eax + 0x20], cx
mov byte [eax + 1], 0x44
mov edx, dword [ebp + 0x10]
movzx eax, word [edx + 0x18]
test al, al
jns 0x458fec
test esi, esi
jne 0x45913d
test edi, edi
jne 0x458ff4
mov eax, dword [edx + 8]
xor edx, edx
mov dword [esp + 0x40], edx
cmp dword [eax], edx
mov edx, dword [ebp + 0x10]
jle 0x458ff4
lea ecx, [eax + 8]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx]
test ecx, ecx
je 0x458fca
mov dl, byte [ecx]
mov esi, ecx
movzx eax, dl
movzx edi, byte [eax + 0x50c230]
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x50c230]
sub edi, eax
jne 0x458fc7
sub ebx, ecx
nop word [eax + eax]
test dl, dl
je 0x458fc3
movzx eax, byte [esi + ebx + 1]
inc esi
mov dl, byte [esi]
movzx ecx, byte [eax + 0x50c230]
movzx eax, dl
movzx edi, byte [eax + 0x50c230]
sub edi, ecx
je 0x458fa0
jmp 0x458fc7
test edi, edi
je 0x45900f
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x40]
mov eax, dword [edx + 8]
inc ecx
add dword [esp + 0x38], 0x18
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x40], ecx
cmp ecx, dword [eax]
mov ecx, dword [esp + 0x38]
jl 0x458f76
mov esi, dword [esp + 0x10]
jmp 0x458ff4
test esi, esi
jne 0x45913d
mov edx, dword [edx + 0xc]
inc dword [esp + 0x44]
mov dword [ebp + 0x10], edx
test edx, edx
je 0x4590eb
mov ecx, dword [esp + 0x1c]
jmp 0x45883a
mov esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x40]
mov ebx, dword [esi + 8]
movzx ecx, word [esi + 0x18]
lea eax, [edx + edx*2]
mov eax, dword [ebx + eax*8 + 4]
test cl, 1
jne 0x459052
test byte [eax + 4], 2
je 0x459052
mov eax, dword [esp + 0x38]
push dword [eax]
push 0x511ce8
push dword [esp + 0x1c]
call fcn.004294b0
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cl, byte [eax]
cmp cl, 0xa4
jne 0x45905c
mov cl, byte [eax + 0x26]
cmp cl, 0xa5
jne 0x459066
add eax, 0x14
jmp 0x45906e
cmp cl, 0x7f
jne 0x459092
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
cmp dword [eax], 1
je 0x459092
push 0x511d08
push dword [esp + 0x18]
call fcn.004294b0
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x44]
mov edi, dword [ebp + 0x14]
mov esi, dword [esp + 0x14]
push ecx
push 0x505031
push edi
push edx
mov edx, ebx
mov ecx, esi
call fcn.004584e0
add esp, 0x10
cmp byte [esi + 0xc4], 2
jb 0x45923b
mov eax, dword [esi + 0x10c]
test eax, eax
je 0x45923b
nop dword [eax]
cmp dword [eax], edi
je 0x4590e0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4590d0
jmp 0x45923b
mov dword [eax], 0
jmp 0x45923b
mov edi, dword [ebp + 8]
test edi, edi
jne 0x45914c
mov ebx, dword [ebp + 0x14]
test byte [ebx + 4], 0x40
je 0x45910b
mov byte [ebx], 0x6a
lea eax, [edi + 1]
mov dword [ebx + 0x2c], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebx + 8]
mov edx, 0x50f9ac
mov ecx, esi
call fcn.00429650
test eax, eax
je 0x45912e
mov edx, 0x50f9a4
mov ecx, esi
call fcn.00429650
test eax, eax
jne 0x459148
mov byte [ebx], 0x9b
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, 1
je 0x4591b6
jmp 0x45914c
mov esi, dword [esp + 0x10]
push dword [ebp + 0xc]
test esi, esi
mov ecx, 0x511d2c
mov eax, 0x511d1c
cmovne eax, ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x45917c
push edi
push ecx
push eax
push 0x511d44
push dword [esp + 0x28]
call fcn.004294b0
add esp, 0x18
jmp 0x4591a7
test edi, edi
je 0x459195
push edi
push eax
push 0x511d54
push dword [esp + 0x24]
call fcn.004294b0
add esp, 0x14
jmp 0x4591a7
push eax
push 0x511d60
push dword [esp + 0x20]
call fcn.004294b0
add esp, 0x10
mov eax, dword [esp + 0x14]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x50]
inc dword [eax + 0x14]
mov edi, dword [ebp + 0x14]
movzx eax, word [edi + 0x20]
test ax, ax
js 0x4591f3
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x4591f3
movsx edx, ax
mov eax, 0x3f
cmp edx, 0x40
cmovge edx, eax
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or dword [ebx + 0x38], eax
or dword [ebx + 0x3c], ecx
mov edx, dword [edi + 0xc]
mov ebx, dword [esp + 0x30]
test edx, edx
je 0x459205
mov ecx, ebx
call fcn.0045bd50
mov edx, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test edx, edx
je 0x45921a
mov ecx, ebx
call fcn.0045bd50
mov eax, dword [esp + 0x3c]
or dword [edi + 4], 0x800000
mov dword [edi + 0x10], 0
mov byte [edi], al
cmp esi, 1
jne 0x459046
mov esi, dword [esp + 0x14]
test dword [edi + 4], 0x400000
jne 0x459301
mov eax, dword [esi]
mov ebx, dword [ebp + 0x10]
cmp dword [eax + 0x130], 0
mov ebx, dword [ebx + 4]
je 0x459301
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x459301
mov eax, dword [eax + 0x10]
xor edx, edx
add eax, 0xc
cmp dword [eax], ecx
je 0x459285
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x459275
test edx, edx
js 0x459301
cmp byte [edi], 0x4d
jne 0x45928f
mov esi, dword [esi + 0x78]
jmp 0x4592b8
mov esi, dword [ebx]
xor eax, eax
test esi, esi
jle 0x459301
mov edi, dword [edi + 0x1c]
lea ecx, [ebx + 0x34]
nop dword [eax]
cmp edi, dword [ecx]
je 0x4592ae
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x4592a0
jmp 0x459301
mov edi, dword [ebp + 0x14]
lea eax, [eax + eax*8]
mov esi, dword [ebx + eax*8 + 0x18]
test esi, esi
je 0x459301
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x4592ce
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x4592e9
movzx eax, word [esi + 0x28]
test ax, ax
js 0x4592e4
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x4592e9
mov eax, 0x51212c
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esi]
push eax
call fcn.00466ea0
add esp, 8
cmp eax, 2
jne 0x459301
mov byte [edi], 0x6e
mov ecx, dword [esp + 0x50]
mov eax, dword [ebp + 0x10]
inc dword [ecx + 0x10]
cmp ecx, eax
je 0x45931a
nop
mov ecx, dword [ecx + 0xc]
inc dword [ecx + 0x10]
cmp ecx, eax
jne 0x459310
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret