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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x554c6e
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x348
mov eax, dword [0x5bd200]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x32c], ecx
mov eax, dword [ebx + 8]
xorps xmm0, xmm0
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x14]
mov esi, dword [ebx + 0x18]
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x324], eax
mov dword [ebp - 0x34c], ecx
mov dword [ebp - 0x33c], edx
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 0x20], 1
mov dword [ebp - 4], 0
movq qword [ebp - 0x348], xmm0
mov dword [ebp - 0x340], 0
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x348], 0
mov byte [ebp - 0x340], 1
mov byte [ebp - 4], 1
mov edi, 2
mov dword [ebp - 0x31c], 0xffffffff
test edx, edx
js 0x511e82
push 0
push edx
push ecx
mov ecx, eax
call fcn.0043abb0
mov edi, eax
mov eax, dword [ebp - 0x28]
test edi, edi
jne 0x511e2e
test eax, eax
je 0x511de6
push eax
call fcn.00538a53
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0053905f
mov esi, dword [ebp - 0x24]
add esp, 4
mov edx, eax
xor ecx, ecx
mov dword [ebp - 0x28], edx
test esi, esi
jle 0x511e23
nop dword [eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, esi
jl 0x511e10
xor eax, eax
mov word [edx + esi*2], ax
mov edi, dword [ebp - 0x28]
jmp 0x511e45
test eax, eax
je 0x511e3b
push eax
call fcn.00538a53
add esp, 4
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
test edi, edi
je 0x511e7b
cmp word [edi], 0
je 0x511e7b
push 0
push 1
push 0xffffffffffffffff
push 1
push 0x575dac
lea ecx, [ebp - 0x28]
call fcn.00406ef0
test eax, eax
mov edi, 2
sete byte [ebp - 0x309]
jmp 0x511fd7
xor esi, esi
jmp 0x5130c1
test esi, esi
je 0x511fce
xor eax, eax
mov byte [ebp - 0x20], 0
cmp word [esi], ax
je 0x511e9d
inc eax
cmp word [esi + eax*2], 0
jne 0x511e95
mov dword [ebp - 0x24], eax
inc eax
mul edi
cmovb eax, dword [ebp - 0x31c]
push eax
call fcn.0053905f
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x511ed4
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x511ec1
xor ecx, ecx
mov word [edx + eax*2], cx
push ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00407d60
push esi
call dword [0x5564d0]
test eax, eax
sete byte [ebp - 0x309]
test eax, eax
je 0x511fd7
mov eax, dword [ebp - 0x24]
mov byte [ebp - 0x20], 0
test eax, eax
jne 0x511f21
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x511f1e
cmp word [ecx], ax
je 0x511f1e
inc eax
cmp word [ecx + eax*2], 0
jne 0x511f16
mov dword [ebp - 0x24], eax
xor ecx, ecx
nop dword [eax]
nop word [eax + eax]
lea ecx, [ecx + 1]
cmp word [ecx*2 + 0x575dac], 0
jne 0x511f30
lea edi, [eax + ecx]
mov ecx, 2
lea eax, [edi + 1]
mul ecx
cmovb eax, dword [ebp - 0x31c]
push eax
call fcn.0053905f
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [ebp - 0x338], eax
mov ecx, eax
test edx, edx
je 0x511f85
movzx esi, word [edx]
test si, si
je 0x511f85
mov eax, esi
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x511f74
mov esi, 0x575dac
mov edx, 0x5c
sub esi, ecx
mov word [ecx], dx
lea ecx, [ecx + 2]
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x511f91
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x511fb7
push eax
call fcn.00538a53
add esp, 4
mov eax, dword [ebp - 0x338]
mov dword [ebp - 0x24], edi
mov edi, 2
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x20], 1
jmp 0x511fd7
mov al, byte [ebx + 0x10]
mov byte [ebp - 0x309], al
mov ecx, dword [ebp - 0x32c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x38], xmm0
mov eax, dword [ecx + 0xb20]
push 0
push 0
push eax
mov byte [ebp - 4], 2
movaps xmm0, xmmword [0x5ab660]
push eax
lea eax, [ecx + 0x1a8]
mov dword [ebp - 0x30], 0xd
push eax
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x40], xmm0
call fcn.0043cff0
mov eax, dword [ebp - 0x324]
mov esi, 0x5a8760
cmp dword [ebp - 0x33c], 0
mov byte [ebp - 4], 3
mov dword [ebp - 0x348], 0
mov eax, dword [eax + 0x230]
mov dword [ebp - 0x330], eax
mov eax, str.Edit
cmovge esi, eax
mov byte [ebp - 0x340], 0
xor ecx, ecx
mov dword [ebp - 0x344], 0
cmp word [esi], cx
je 0x51207b
inc ecx
cmp word [esi + ecx*2], 0
jne 0x512073
xor eax, eax
nop dword [eax]
inc eax
cmp word [eax*2 + 0x5a8734], 0
jne 0x512080
add eax, ecx
mov dword [ebp - 0x314], eax
inc eax
mul edi
cmovb eax, dword [ebp - 0x31c]
push eax
call fcn.0053905f
movzx ecx, word [esi]
add esp, 4
mov dword [ebp - 0x338], eax
mov edx, eax
mov edi, ecx
test cx, cx
je 0x5120d1
sub esi, eax
nop dword [eax + eax]
mov word [edx], cx
add edx, 2
movzx eax, word [esi + edx]
mov ecx, eax
test ax, ax
jne 0x5120c0
mov esi, 0x5a8734
mov ecx, 0x20
sub esi, edx
nop dword [eax]
mov word [edx], cx
lea edx, [edx + 2]
movzx eax, word [edx + esi]
mov ecx, eax
test ax, ax
jne 0x5120e0
mov edi, dword [ebp - 0x338]
xor eax, eax
mov word [edx], ax
mov eax, dword [ebp - 0x314]
push 0x268
mov dword [ebp - 0x344], eax
lea eax, [ebp - 0x2b0]
push 0
push eax
mov dword [ebp - 0x348], edi
call fcn.0053a920
mov esi, dword [ebp - 0x32c]
add esp, 0xc
add esi, 0x68
mov byte [ebp - 0x340], 1
mov dword [ebp - 0x350], esi
mov word [ebp - 0x278], 0
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x1a0], 0
mov byte [ebp - 0x198], 1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2b0]
push 1
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
call fcn.0043c800
push ecx
test esi, esi
lea eax, [ebp - 0x2b0]
lea ecx, [ebp - 0x2b0]
cmovne eax, esi
mov esi, dword [ebp - 0x330]
push esi
push 0xffffffffffffffff
push 0xc80000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xa0
push 0x1f4
push edi
push 0x57d35c
mov dword [ebp - 0xf0], eax
call fcn.0042e110
mov byte [ebp - 4], 5
mov edx, esi
push ecx
mov ecx, dword [ebp - 0x80]
call fcn.00422260
mov edi, dword [ebp - 0x324]
xor esi, esi
mov eax, dword [ebp - 0x80]
add edi, 0x50
mov dword [ebp - 0x314], eax
mov eax, dword [edi]
test eax, eax
je 0x51220c
push eax
call dword [0x5565a0]
test eax, eax
je 0x51220c
inc esi
add edi, 4
cmp esi, 0x30
jl 0x5121f0
jmp 0x512225
mov ecx, dword [ebp - 0x324]
mov eax, dword [ebp - 0x314]
mov dword [ecx + esi*4 + 0x50], eax
inc esi
cmp esi, dword [ecx + 0x4c]
jle 0x512225
mov dword [ecx + 0x4c], esi
push 0xffffff
call dword [0x5561a8]
mov ecx, dword [ebp - 0xd0]
mov edi, eax
mov esi, dword [0x5561a4]
test ecx, ecx
je 0x512245
push ecx
call esi
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], 0
test eax, eax
je 0x512265
cmp dword [ebp - 0xac], 4
je 0x512265
push eax
call esi
movsd xmm0, qword [0x5ab0c0]
xor eax, eax
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0xffffff
movsd qword [ebp - 0x140], xmm0
mov dword [ebp - 0x138], 0x190
mov byte [ebp - 0x134], 1
mov byte [ebp - 0xf2], 0
inc eax
cmp word [eax*2 + str.Arial], 0
jne 0x5122b3
inc eax
push eax
push str.Arial
lea eax, [ebp - 0x132]
push 0x20
push eax
call fcn.0053c0c3
add esp, 0x10
lea ecx, [ebp - 0x2b0]
call fcn.0043c4b0
mov esi, dword [0x556640]
test al, al
je 0x51234f
mov eax, dword [ebp - 0x270]
push 0
push dword [ebp - 0x194]
inc eax
push eax
push dword [ebp - 0x7c]
movzx eax, byte [ebp - 0x68]
push 0x12
push 0x1cc
push 0x14
and eax, 1
push 0x14
shl eax, 0x11
add eax, 0x50000101
push eax
push 0x5a8768
push str.Static
push 0
call esi
test eax, eax
je 0x51234f
push eax
push 0xd
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
movaps xmm0, xmmword [0x5ab2f0]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x274]
movups xmmword [eax + ecx*8 + 0x24], xmm0
lea ecx, [ebp - 0x2b0]
call fcn.0043c4b0
test al, al
je 0x5123be
mov eax, dword [ebp - 0x270]
push 0
push dword [ebp - 0x194]
inc eax
push eax
push dword [ebp - 0x7c]
movzx eax, byte [ebp - 0x68]
push 0x12
push 0x32
push 0x2b
and eax, 1
push 0xa
shl eax, 0x11
add eax, 0x50000100
push eax
push 0x5a87cc
push str.Static
push 0
call esi
test eax, eax
je 0x5123be
push eax
push 0xd
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
movaps xmm0, xmmword [0x5ab270]
lea ecx, [eax + eax*8]
mov eax, dword [ebp - 0x274]
movups xmmword [eax + ecx*8 + 0x24], xmm0
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x5123dd
push 2
call fcn.0053905f
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 0x20], 1
call fcn.0043c4b0
test al, al
jne 0x5123f4
xor edi, edi
jmp 0x512464
test byte [ebp - 0x68], 1
mov eax, 0x50020080
push 0
push dword [ebp - 0x194]
mov ecx, 0x50000080
cmovne ecx, eax
mov eax, dword [ebp - 0x270]
inc eax
or ecx, 0x10000
push eax
push dword [ebp - 0x7c]
push 0x14
push 0x16d
push 0x28
push 0x3c
push ecx
push edi
push str.Edit
push 0x200
call esi
test eax, eax
jne 0x51243f
xor edi, edi
jmp 0x512464
push eax
push 0xc
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
mov ecx, dword [ebp - 0x274]
mov edi, eax
movaps xmm0, xmmword [0x5ab370]
lea edx, [edi + edi*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
movsd xmm0, qword [0x5ab0c0]
sub esp, 0x14
mov dword [ebp - 0x320], edi
movsd qword [esp + 0xc], xmm0
push 0x190
push ecx
lea ecx, [ebp - 0x2b0]
call fcn.00437340
cmp dword [ebp - 0x80], 0
je 0x51250c
lea ecx, [ebp - 0x2b0]
call fcn.0043c4b0
test al, al
je 0x51250c
mov eax, dword [ebp - 0x270]
push 0
push dword [ebp - 0x194]
inc eax
push eax
push dword [ebp - 0x7c]
movzx eax, byte [ebp - 0x68]
push 0x16
push 0x3c
push 0x27
and eax, 1
push 0x1ae
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x57dd54
push str.Button
push 0
call esi
test eax, eax
je 0x51250c
push eax
push 3
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
mov ecx, dword [ebp - 0x274]
movaps xmm0, xmmword [0x5ab3c0]
mov dword [ebp - 0x330], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x512516
mov dword [ebp - 0x330], 0
cmp dword [ebp - 0x80], 0
je 0x512590
lea ecx, [ebp - 0x2b0]
call fcn.0043c4b0
test al, al
je 0x512590
mov eax, dword [ebp - 0x270]
push 0
push dword [ebp - 0x194]
inc eax
push eax
push dword [ebp - 0x7c]
movzx eax, byte [ebp - 0x68]
push 0x14
push 0xa0
push 0x4b
and eax, 1
push 0x32
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x5a87d8
push str.Button
push 0
call esi
test eax, eax
je 0x512590
push eax
push 4
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
mov ecx, dword [ebp - 0x274]
movaps xmm0, xmmword [0x5ab350]
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x512592
xor eax, eax
mov dword [ebp - 0x310], eax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x5125ae
movzx eax, word [eax]
mov ecx, eax
test ax, ax
je 0x5125ae
cmp ecx, 0x25
jne 0x5125bd
push 4
push 0xffffffffffffffff
lea ecx, [ebp - 0x2b0]
call fcn.00438420
cmp dword [ebp - 0x80], 0
je 0x512640
lea ecx, [ebp - 0x2b0]
call fcn.0043c4b0
test al, al
je 0x512640
mov eax, dword [ebp - 0x270]
push 0
push dword [ebp - 0x194]
inc eax
push eax
push dword [ebp - 0x7c]
movzx eax, byte [ebp - 0x68]
push 0x14
push 0xa0
push 0x4b
and eax, 1
push 0x122
shl eax, 0x11
add eax, 0x50010003
push eax
push 0x5a8808
push str.Button
push 0
call esi
test eax, eax
je 0x512640
push eax
push 4
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
mov ecx, dword [ebp - 0x274]
movaps xmm0, xmmword [0x5ab360]
mov dword [ebp - 0x318], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x51264a
mov dword [ebp - 0x318], 0
cmp byte [ebp - 0x309], 0
je 0x512657
push 0x40
jmp 0x51267b
cmp dword [ebp - 0x33c], 0xffffffff
je 0x512679
push 0
push 1
push 0xffffffffffffffff
push 1
push 0x575dac
lea ecx, [ebp - 0x28]
call fcn.00406ef0
test eax, eax
je 0x512688
push 4
push 0xffffffffffffffff
lea ecx, [ebp - 0x2b0]
call fcn.00438420
cmp dword [ebp - 0x80], 0
je 0x512705
lea ecx, [ebp - 0x2b0]
call fcn.0043c4b0
test al, al
je 0x512705
mov eax, dword [ebp - 0x270]
push 0
push dword [ebp - 0x194]
inc eax
push eax
push dword [ebp - 0x7c]
movzx eax, byte [ebp - 0x68]
push 0x1a
push 0x64
push 0x78
and eax, 1
push 0x64
shl eax, 0x11
add eax, 0x50010000
push eax
push 0x57d378
push str.Button
push 0
call esi
test eax, eax
je 0x512705
push eax
push 3
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
mov ecx, dword [ebp - 0x274]
movaps xmm0, xmmword [0x5ab410]
mov dword [ebp - 0x334], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x51270f
mov dword [ebp - 0x334], 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x2b0]
call fcn.0042fee0
cmp dword [ebp - 0x80], 0
je 0x51279c
lea ecx, [ebp - 0x2b0]
call fcn.0043c4b0
test al, al
je 0x51279c
mov eax, dword [ebp - 0x270]
push 0
push dword [ebp - 0x194]
inc eax
push eax
push dword [ebp - 0x7c]
movzx eax, byte [ebp - 0x68]
push 0x1a
push 0x64
push 0x78
and eax, 1
push 0x12c
shl eax, 0x11
add eax, 0x50010000
push eax
push str.Cancel
push str.Button
push 0
call esi
test eax, eax
je 0x51279c
push eax
push 3
lea ecx, [ebp - 0x2b0]
call fcn.0043c1c0
mov ecx, dword [ebp - 0x274]
movaps xmm0, xmmword [0x5ab420]
mov dword [ebp - 0x328], eax
lea edx, [eax + eax*8]
movups xmmword [ecx + edx*8 + 0x24], xmm0
jmp 0x5127a6
mov dword [ebp - 0x328], 0
mov esi, dword [ebp - 0x310]
push 0x186a0
push ecx
push 0x5a8838
push esi
lea ecx, [ebp - 0x2b0]
call fcn.00439420
push 0x186a0
push ecx
push 0x5a88e0
push dword [ebp - 0x318]
lea ecx, [ebp - 0x2b0]
call fcn.00439420
push 0x186a0
push ecx
push 0x5a8990
push dword [ebp - 0x334]
lea ecx, [ebp - 0x2b0]
call fcn.00439420
push 0x186a0
push ecx
push 0x5a89b0
push dword [ebp - 0x328]
lea ecx, [ebp - 0x2b0]
call fcn.00439420
mov eax, 0x1b
mov byte [ebp - 0x1c], 1
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x328]
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x51283c
push eax
call dword [0x556674]
push 1
lea eax, [ebp - 0x1c]
push eax
call dword [0x55660c]
xor ecx, ecx
cmp eax, 0xffffffff
push 1
cmove eax, ecx
lea ecx, [ebp - 0x2b0]
push 1
mov dword [ebp - 0x6c], eax
call fcn.00430280
mov ecx, dword [ebp - 0x32c]
push 0
call fcn.004f9de0
test eax, eax
je 0x513046
nop word [eax + eax]
mov eax, dword [ebp - 0x350]
mov eax, dword [eax]
cmp eax, 0xfffffffa
je 0x5131c5
mov ecx, dword [ebp - 0x32c]
lea edx, [ebp - 0x2b0]
cmp dword [ecx + 0x98], edx
jne 0x513031
cmp eax, dword [ebp - 0x330]
jne 0x512ae7
cmp byte [ebp - 0x309], 0
mov esi, dword [ebp - 0x80]
mov eax, dword [ebp - 0x28]
je 0x51296e
test eax, eax
je 0x5128d5
push eax
call fcn.00538a53
add esp, 4
push 0x58
lea eax, [ebp - 0x308]
mov dword [ebp - 0x28], 0
push 0
push eax
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
call fcn.0053a920
add esp, 0xc
mov dword [ebp - 0x308], 0x58
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x304], esi
mov dword [ebp - 0x2fc], 0x57bd60
push 1
push 0
push 0x800
call fcn.00405dd0
mov dword [ebp - 0x2ec], eax
lea eax, [ebp - 0x308]
push eax
mov dword [ebp - 0x2e8], 0x800
mov dword [ebp - 0x2dc], 0
mov dword [ebp - 0x2d8], 0x5a8a18
mov dword [ebp - 0x2d4], 0x80008
mov dword [ebp - 0x2cc], 0
call dword [0x556138]
test eax, eax
jmp 0x5129a0
test eax, eax
je 0x51297b
push eax
call fcn.00538a53
add esp, 4
push esi
sub esp, 0xc
mov dword [ebp - 0x28], 0
mov edx, 0x5a8a3c
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.0041c340
test al, al
je 0x51302b
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
test eax, eax
jne 0x5129cd
xor eax, eax
test ecx, ecx
je 0x5129c8
cmp word [ecx], ax
je 0x5129c8
nop dword [eax + eax]
inc eax
cmp word [ecx + eax*2], 0
jne 0x5129c0
mov dword [ebp - 0x24], eax
test eax, eax
setg byte [ebp - 0x20]
test eax, eax
jle 0x5129f3
cmp word [ecx + eax*2 - 2], 0x5c
jne 0x5129f3
dec eax
xor edx, edx
mov dword [ebp - 0x24], eax
mov word [ecx + eax*2], dx
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x5129f3
mov ecx, dword [ebp - 0x28]
jmp 0x5129d5
mov esi, dword [ebp - 0x310]
lea ecx, [ebp - 0x2b0]
push 4
push esi
call fcn.00439760
test eax, eax
je 0x512a19
push 0x200
lea eax, [ebp - 0x28]
push eax
call fcn.00511bc0
cmp byte [ebp - 0x309], 0
jne 0x512cce
push 4
push dword [ebp - 0x318]
lea ecx, [ebp - 0x2b0]
call fcn.00439760
test eax, eax
mov byte [ebp - 0x20], 0
mov eax, 0x57ea0c
mov esi, 0x575dac
cmove esi, eax
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x512a6b
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x512a68
cmp word [ecx], ax
je 0x512a68
nop
inc eax
cmp word [ecx + eax*2], 0
jne 0x512a60
mov dword [ebp - 0x24], eax
xor ecx, ecx
cmp word [esi], cx
je 0x512a7a
inc ecx
cmp word [esi + ecx*2], 0
jne 0x512a72
add eax, ecx
mov ecx, 2
mov dword [ebp - 0x314], eax
inc eax
mul ecx
cmovb eax, dword [ebp - 0x31c]
push eax
call fcn.0053905f
mov edx, dword [ebp - 0x28]
add esp, 4
mov edi, eax
mov ecx, edi
test edx, edx
je 0x512ac1
movzx eax, word [edx]
test ax, ax
je 0x512ac1
nop dword [eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x512ab0
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x512ca1
sub esi, ecx
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x512ad1
jmp 0x512ca1
cmp eax, 0xfffffffb
jne 0x512d0b
mov eax, dword [ebp - 0x28]
mov esi, dword [ecx + 0x78]
test eax, eax
je 0x512b03
push eax
call fcn.00538a53
add esp, 4
xor eax, eax
mov byte [ebp - 0x20], 0
test esi, esi
je 0x512b1a
cmp word [esi], ax
je 0x512b1a
inc eax
cmp word [esi + eax*2], 0
jne 0x512b12
mov dword [ebp - 0x24], eax
mov ecx, 2
inc eax
mul ecx
cmovb eax, dword [ebp - 0x31c]
push eax
call fcn.0053905f
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x512b56
mov ax, word [esi + ecx*2]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x512b43
xor ecx, ecx
mov word [edx + eax*2], cx
push ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00407d60
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x512b88
push 2
call fcn.0053905f
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
push eax
mov byte [ebp - 0x20], 1
call dword [0x5564d0]
mov esi, dword [ebp - 0x310]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp byte [ebp - 0x309], cl
setne cl
cmp eax, ecx
je 0x513031
push 4
push esi
lea ecx, [ebp - 0x2b0]
call fcn.00439760
test eax, eax
je 0x512bd2
push 0x200
lea eax, [ebp - 0x28]
push eax
call fcn.00511bc0
cmp byte [ebp - 0x309], 0
jne 0x512cce
push 4
push dword [ebp - 0x318]
lea ecx, [ebp - 0x2b0]
call fcn.00439760
test eax, eax
mov byte [ebp - 0x20], 0
mov eax, 0x57ea0c
mov esi, 0x575dac
cmove esi, eax
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x512c23
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x512c20
cmp word [ecx], ax
je 0x512c20
inc eax
cmp word [ecx + eax*2], 0
jne 0x512c18
mov dword [ebp - 0x24], eax
xor ecx, ecx
cmp word [esi], cx
je 0x512c38
nop word [eax + eax]
inc ecx
cmp word [esi + ecx*2], 0
jne 0x512c30
add eax, ecx
mov ecx, 2
mov dword [ebp - 0x314], eax
inc eax
mul ecx
cmovb eax, dword [ebp - 0x31c]
push eax
call fcn.0053905f
mov edx, dword [ebp - 0x28]
add esp, 4
mov edi, eax
mov ecx, edi
test edx, edx
je 0x512c81
movzx eax, word [edx]
test ax, ax
je 0x512c81
nop dword [eax + eax]
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x512c70
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x512ca1
sub esi, ecx
nop dword [eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [esi + ecx]
mov edx, eax
test ax, ax
jne 0x512c90
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x512cb6
push eax
call fcn.00538a53
add esp, 4
mov eax, dword [ebp - 0x314]
mov esi, dword [ebp - 0x310]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
jmp 0x512cd1
mov edi, dword [ebp - 0x28]
test edi, edi
jne 0x512ced
push 2
call fcn.0053905f
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
push 0
push edi
mov edi, dword [ebp - 0x320]
lea ecx, [ebp - 0x2b0]
push edi
mov byte [ebp - 0x20], 1
call fcn.00438b50
jmp 0x513031
cmp eax, esi
jne 0x512e62
push edi
lea ecx, [ebp - 0x2b0]
call fcn.00439a10
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x512d7b
test eax, eax
je 0x512d35
push eax
call fcn.00538a53
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0053905f
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x512d73
nop dword [eax + eax]
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x512d60
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x512d92
test eax, eax
je 0x512d88
push eax
call fcn.00538a53
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
push ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00407d60
mov eax, dword [eax]
test eax, eax
je 0x51302b
cmp word [eax], 0
mov esi, dword [ebp - 0x310]
je 0x513031
push 4
push esi
lea ecx, [ebp - 0x2b0]
call fcn.00439760
test eax, eax
je 0x512ddb
push 0x200
lea eax, [ebp - 0x28]
push eax
call fcn.00511bc0
jmp 0x512e2d
cmp dword [ebp - 0x28], 0
je 0x512e33
push 0x2000
call fcn.0053905f
add esp, 4
mov esi, eax
push 0x1000
push esi
push dword [ebp - 0x28]
call dword [0x556408]
mov edi, eax
test edi, edi
jne 0x512e0d
push esi
call fcn.00538a53
jmp 0x512e1e
push dword [ebp - 0x28]
call fcn.00538a53
lea eax, [edi - 1]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], eax
mov esi, dword [ebp - 0x310]
add esp, 4
mov edi, dword [ebp - 0x320]
cmp dword [ebp - 0x28], 0
jne 0x512e48
push 2
call fcn.0053905f
add esp, 4
mov dword [ebp - 0x28], eax
xor ecx, ecx
mov word [eax], cx
mov dword [ebp - 0x24], ecx
push 0
push dword [ebp - 0x28]
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 0x20], 1
push edi
call fcn.00438b50
jmp 0x513031
cmp eax, dword [ebp - 0x318]
jne 0x5130f0
cmp byte [ebp - 0x309], 0
jne 0x513031
push edi
lea ecx, [ebp - 0x2b0]
call fcn.00439a10
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x512edb
test eax, eax
je 0x512e9d
push eax
call fcn.00538a53
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0053905f
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x512ed3
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x512ec0
xor ecx, ecx
mov word [edx + eax*2], cx
jmp 0x512ef2
test eax, eax
je 0x512ee8
push eax
call fcn.00538a53
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
push ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x20], 1
call fcn.00407d60
mov eax, dword [eax]
test eax, eax
je 0x51302b
cmp word [eax], 0
je 0x51302b
push 8
push 0
push 0x575cb0
push 0x5a8a64
lea ecx, [ebp - 0x28]
call fcn.00408840
push 4
push dword [ebp - 0x318]
lea ecx, [ebp - 0x2b0]
call fcn.00439760
test eax, eax
mov byte [ebp - 0x20], 0
mov eax, 0x57ea0c
mov esi, 0x575dac
cmove esi, eax
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x512f6d
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x512f6a
cmp word [ecx], ax
je 0x512f6a
inc eax
cmp word [ecx + eax*2], 0
jne 0x512f62
mov dword [ebp - 0x24], eax
xor ecx, ecx
cmp word [esi], cx
je 0x512f7c
inc ecx
cmp word [esi + ecx*2], 0
jne 0x512f74
add eax, ecx
mov ecx, 2
mov dword [ebp - 0x354], eax
inc eax
mul ecx
cmovb eax, dword [ebp - 0x31c]
push eax
call fcn.0053905f
mov edx, dword [ebp - 0x28]
mov edi, eax
add esp, 4
mov dword [ebp - 0x314], edi
mov ecx, edi
test edx, edx
je 0x512fce
movzx edi, word [edx]
test di, di
je 0x512fc8
mov eax, edi
mov word [ecx], ax
lea edx, [edx + 2]
movzx eax, word [edx]
add ecx, 2
test ax, ax
jne 0x512fb7
mov edi, dword [ebp - 0x314]
movzx eax, word [esi]
mov edx, eax
test ax, ax
je 0x512ff1
sub esi, ecx
nop word [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx eax, word [ecx + esi]
mov edx, eax
test ax, ax
jne 0x512fe0
xor eax, eax
mov word [ecx], ax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x513006
push eax
call fcn.00538a53
add esp, 4
mov eax, dword [ebp - 0x354]
lea ecx, [ebp - 0x2b0]
push 0
push edi
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x320]
push edi
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 1
call fcn.00438b50
mov esi, dword [ebp - 0x310]
mov ecx, dword [ebp - 0x32c]
push 0
call fcn.004f9de0
test eax, eax
jne 0x512880
xor esi, esi
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 0xc
call fcn.0042e6d0
mov eax, dword [ebp - 0x274]
test eax, eax
je 0x51306a
push eax
call fcn.00538a53
add esp, 4
mov eax, dword [ebp - 0x1a0]
test eax, eax
je 0x51307d
push eax
call fcn.00538a53
add esp, 4
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x48]
test ecx, ecx
je 0x5130a3
test edi, edi
je 0x5130b0
push dword [ebp - 0x30]
lea eax, [ebp - 0x48]
push dword [ebp - 0x40]
push eax
call fcn.0042ead0
call fcn.00408f40
test edi, edi
je 0x5130b0
push edi
call fcn.00538a53
add esp, 4
push dword [ebp - 0x338]
call fcn.00538a53
mov edi, dword [ebp - 0x28]
add esp, 4
test edi, edi
je 0x5130ce
push edi
call fcn.00538a53
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00538a45
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
cmp eax, dword [ebp - 0x334]
jne 0x5131b9
push edi
lea ecx, [ebp - 0x2b0]
call fcn.00439a10
mov esi, eax
mov eax, dword [ebp - 0x28]
test esi, esi
jne 0x51315f
test eax, eax
je 0x51311e
push eax
call fcn.00538a53
add esp, 4
push 2
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.0053905f
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x24]
xor ecx, ecx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x513154
mov ax, word [ecx + ecx]
mov word [edx + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
cmp ecx, eax
jl 0x513141
xor ecx, ecx
mov word [edx + eax*2], cx
mov esi, dword [ebp - 0x28]
jmp 0x513176
test eax, eax
je 0x51316c
push eax
call fcn.00538a53
add esp, 4
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0
mov byte [ebp - 0x20], 1
test esi, esi
je 0x51302b
cmp word [esi], 0
je 0x51302b
mov edi, dword [ebp - 0x33c]
mov byte [ebp - 0x20], 1
test edi, edi
jns 0x5131cd
push ecx
push dword [ebp - 0x34c]
mov ecx, dword [ebp - 0x324]
push 0
push 2
push 0xffffffffffffffff
push 0
push esi
call fcn.0043a3d0
mov esi, eax
jmp 0x513232
cmp eax, dword [ebp - 0x328]
jne 0x513031
or esi, 0xffffffff
jmp 0x513048
mov edx, dword [ebp - 0x34c]
mov ecx, dword [ebp - 0x324]
cmp edx, 0xffffffff
jne 0x5131e1
mov edx, dword [ecx + 0x40]
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x513230
cmp edx, 1
jl 0x513230
cmp edx, dword [ecx + 0x40]
jg 0x513230
lea ecx, [edx + edx*8]
cmp dword [eax + ecx*8 + 0xc], 0
je 0x513230
cmp dword [eax + ecx*8], 0xf
jne 0x513230
lea edx, [ebp - 0x2ec]
mov dword [ebp - 0x2e4], 0
push edx
push edi
push 0x1074
mov dword [ebp - 0x2d8], esi
push dword [eax + ecx*8 + 4]
call dword [0x55657c]
mov esi, 1
jmp 0x513232
xor esi, esi
lea ecx, [ebp - 0x2b0]
call fcn.0042e6d0
mov eax, dword [ebp - 0x324]
push dword [eax + 0x230]
call dword [0x5565f8]
jmp 0x513048