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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
mov eax, ecx
mov byte [esp + 7], 0
push esi
mov esi, edx
mov dword [esp + 0x10], eax
push edi
mov edi, dword [eax + 8]
xor edx, edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edi
call fcn.00460ca0
mov edx, dword [ebp + 8]
xorps xmm0, xmm0
mov esi, dword [esi + 0x14]
mov dword [esp + 0x5c], eax
xor eax, eax
movlpd qword [esp + 0x50], xmm0
mov ecx, dword [edx + 0x10]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov edx, dword [edx + 0x40]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx + 0xc]
mov edx, dword [ebp + 8]
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, esi
mov dword [esp + 0x48], ecx
cmp esi, ecx
mov ecx, dword [esp + 0x54]
jae 0x498bee
mov eax, dword [esp + 0x50]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
nop
mov edi, dword [esp + 0x28]
mov eax, dword [edi]
or eax, dword [edi + 4]
jne 0x498a94
test byte [esi + 0x14], 2
jne 0x498a94
mov edi, dword [esi]
test byte [edi + 4], 1
jne 0x498a94
xorps xmm0, xmm0
mov dword [esp + 0x78], eax
mov eax, dword [edx + 0x30]
lea ecx, [esp + 0x60]
movaps xmmword [esp + 0x60], xmm0
mov edx, edi
movq qword [esp + 0x70], xmm0
mov byte [esp + 0x74], 3
mov dword [esp + 0x60], fcn.00460880
mov dword [esp + 0x64], 0x460990
mov dword [esp + 0x78], eax
call fcn.0045c6d0
cmp byte [esp + 0x74], 0
je 0x498a8d
mov edx, edi
mov edi, dword [esp + 0x14]
push 0
push 0
mov ecx, dword [edi]
call fcn.0045fa70
mov edx, dword [esp + 0x24]
mov ecx, dword [edi]
push eax
call fcn.0045f5a0
add esp, 0xc
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
mov eax, dword [esi + 8]
cmp eax, dword [edx + 0x30]
jne 0x498bce
test byte [esi + 0x12], 0x82
je 0x498bce
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x498bca
mov ecx, dword [esi + 0xc]
test ecx, ecx
js 0x498bca
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0x15]
mov ecx, dword [esi]
mov byte [esp + 0xe], al
call fcn.0045ed80
movsx eax, al
sub eax, 0x41
je 0x498b0c
sub eax, 1
je 0x498afa
xor eax, eax
cmp byte [esp + 0xe], 0x43
setge al
jmp 0x498b04
xor eax, eax
cmp byte [esp + 0xe], 0x42
sete al
test eax, eax
je 0x498bc7
mov edx, dword [esi + 0xc]
xor edi, edi
cmp edx, 0x40
jl 0x498b20
mov dword [esp + 0x38], connect
jmp 0x498b39
mov eax, edx
xor ecx, ecx
bts edi, eax
cmp eax, 0x20
cmovae ecx, edi
xor edi, ecx
cmp eax, 0x40
cmovae ecx, edi
mov dword [esp + 0x38], ecx
cmp byte [esp + 0xf], 0
jne 0x498b66
lea ecx, [edx + edx*2]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
push dword [eax + ecx*8]
push dword [edx]
push str.automatic_index_on__s__s_
push 0x11c
call fcn.0042f060
add esp, 0x10
mov byte [esp + 0xf], 1
mov eax, dword [esp + 0x38]
mov ecx, edi
and eax, dword [esp + 0x18]
and ecx, dword [esp + 0x24]
or ecx, eax
mov eax, dword [esp + 0x10]
jne 0x498be5
mov edx, dword [esp + 0x28]
inc eax
mov dword [esp + 0x44], eax
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
call fcn.00499ca0
add esp, 4
test eax, eax
jne 0x49984a
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
or dword [esp + 0x24], edi
mov edx, dword [ebp + 8]
mov eax, dword [eax + 0x30]
mov dword [eax + ecx*4], esi
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
jmp 0x498bd2
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
add esi, 0x30
cmp esi, dword [esp + 0x48]
jb 0x498a10
mov esi, dword [esp + 0x24]
jmp 0x498bf2
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
jmp 0x498bd2
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x28]
not ecx
movzx eax, ax
or ecx, 0x80000000
not esi
mov word [edi + 0x28], ax
mov word [edi + 0x18], ax
mov eax, edi
mov edi, dword [esp + 0x30]
mov dword [eax + 0x24], 0x4241
mov eax, dword [ebp + 8]
mov edx, dword [edx + 0x40]
and esi, edx
mov dword [esp + 0x24], esi
mov esi, 0x3f
mov dword [esp + 0x40], edx
and ecx, dword [eax + 0x44]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
movzx ecx, word [eax + 0x22]
mov dword [esp + 0x44], ecx
movzx eax, cx
cmp si, cx
jge 0x498c4e
mov dword [esp + 0x38], esi
jmp 0x498c5c
movsx esi, cx
mov dword [esp + 0x38], esi
xor esi, esi
cmp si, ax
jge 0x498c9a
mov edi, dword [esp + 0x38]
xor esi, esi
xor edx, edx
xor ecx, ecx
mov eax, esi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x24]
and ecx, dword [esp + 0x18]
or edx, ecx
je 0x498c89
inc dword [esp + 0x10]
inc esi
cmp esi, edi
jl 0x498c62
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jg 0x498cb9
jl 0x498ca9
test edx, edx
jae 0x498cb9
movsx eax, cx
mov ecx, dword [esp + 0x10]
add ecx, 0xffffffc1
add ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
inc eax
movzx eax, ax
movsx esi, ax
mov dword [esp + 0x3c], eax
lea eax, [esi*4 + 9]
add eax, esi
lea ecx, [esi*4 + 7]
and ecx, 0xfffffff8
and eax, 0xfffffff8
add eax, ecx
mov dword [esp + 0x40], ecx
cdq
add eax, 0x38
mov dword [esp + 0x44], eax
adc edx, 0
push edx
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
call fcn.0042d090
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x49984a
push dword [esp + 0x44]
push 0
push eax
call fcn.004f53d0
mov edx, dword [esp + 0x2c]
add esp, 0xc
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
lea ecx, [edx + 0x38]
mov dword [edx + 0x20], ecx
add ecx, dword [esp + 0x40]
mov dword [edx + 8], ecx
lea eax, [ecx + 2]
lea eax, [eax + esi*2]
mov dword [edx + 4], eax
lea eax, [eax + esi*2]
mov dword [edx + 0x1c], eax
xor esi, esi
mov eax, dword [esp + 0x3c]
mov word [edx + 0x30], ax
dec eax
mov word [edx + 0x2e], ax
mov eax, dword [esp + 0x28]
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x2c]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [edx], str.auto_index
mov eax, dword [eax + 0x14]
mov dword [esp + 0x40], eax
cmp eax, dword [esp + 0x48]
jae 0x498ed3
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x40]
mov edx, dword [ebp + 8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 8]
cmp eax, dword [edx + 0x30]
jne 0x498ec2
test byte [edi + 0x12], 0x82
je 0x498ec2
mov ecx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
and ecx, dword [ebp + 0xc]
and eax, dword [ebp + 0x10]
or ecx, eax
jne 0x498ec2
mov ecx, dword [edi + 0xc]
test ecx, ecx
js 0x498ec2
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*2]
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0x15]
mov ecx, dword [edi]
mov byte [esp + 0xf], al
call fcn.0045ed80
movsx eax, al
sub eax, 0x41
je 0x498e0a
sub eax, 1
je 0x498df8
xor eax, eax
cmp byte [esp + 0xf], 0x43
setge al
jmp 0x498e02
xor eax, eax
cmp byte [esp + 0xf], 0x42
sete al
test eax, eax
je 0x498ebf
mov eax, dword [edi + 0xc]
xor edx, edx
mov dword [esp + 0x50], eax
cmp eax, 0x40
jl 0x498e23
mov eax, connect
mov dword [esp + 0x40], eax
jmp 0x498e3c
bts edx, eax
xor ecx, ecx
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
mov dword [esp + 0x40], ecx
mov eax, ecx
and eax, dword [esp + 0x44]
mov ecx, edx
and ecx, dword [esp + 0x3c]
or ecx, eax
jne 0x498ebf
mov eax, dword [esp + 0x44]
or eax, dword [esp + 0x40]
mov ecx, dword [edi]
or dword [esp + 0x3c], edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov word [eax + esi*2], dx
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x50], eax
test dword [edx + 4], 0x100
jne 0x498ea0
test eax, eax
je 0x498e8f
test dword [eax + 4], 0x100
je 0x498e8f
mov edx, eax
jmp 0x498ea0
mov ecx, dword [esp + 0x14]
call fcn.0045ec00
test eax, eax
jne 0x498eb2
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
call fcn.0045ec00
mov ecx, str.BINARY
test eax, eax
je 0x498eb4
mov ecx, dword [eax]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
mov dword [eax + esi*4], ecx
inc esi
mov edx, dword [ebp + 8]
add edi, 0x30
cmp edi, dword [esp + 0x48]
jb 0x498d92
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x38], 0
jle 0x498f24
xor edi, edi
nop dword [eax]
xor edx, edx
xor ecx, ecx
mov eax, edi
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
and edx, dword [esp + 0x24]
and ecx, dword [esp + 0x18]
or edx, ecx
je 0x498f19
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
mov word [eax + esi*2], di
mov eax, dword [ecx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
inc edi
cmp edi, dword [esp + 0x38]
jl 0x498ee0
mov edi, dword [esp + 0x30]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jg 0x498f71
jl 0x498f35
cmp dword [eax + 0x40], 0
jae 0x498f71
mov eax, dword [esp + 0x2c]
mov ecx, 0x3f
mov edx, dword [esp + 0x20]
cmp cx, word [eax + 0x22]
jge 0x498f75
mov edi, eax
nop word [eax + eax]
mov eax, dword [edx + 4]
mov word [eax + esi*2], cx
inc ecx
mov eax, dword [edx + 0x20]
mov dword [eax + esi*4], str.BINARY
inc esi
movsx eax, word [edi + 0x22]
cmp ecx, eax
jl 0x498f50
mov edi, dword [esp + 0x30]
jmp 0x498f75
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
or ecx, 0xffffffff
mov word [eax + esi*2], cx
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x14]
mov dword [eax + esi*4], str.BINARY
mov eax, dword [ecx + 0x44]
mov dword [edx + 8], eax
inc dword [ecx + 0x44]
mov ecx, dword [edi + 0x18]
mov eax, dword [edx + 8]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
cmp eax, edx
jg 0x49902c
test eax, eax
je 0x498fc1
lea eax, [eax + eax*4]
shl eax, 3
jmp 0x498fc6
mov eax, 0x3fc
mov edx, dword [edi + 4]
mov ecx, dword [ecx]
push 0
push eax
call fcn.0042d130
mov esi, eax
add esp, 8
test esi, esi
je 0x499061
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
test eax, eax
je 0x499003
cmp esi, dword [eax + 0x114]
jb 0x499003
cmp esi, dword [eax + 0x118]
jae 0x499003
movzx ecx, word [eax + 0xf8]
jmp 0x49900f
push esi
call dword [0x547f10]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x48]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x50]
mov dword [edi + 4], esi
jmp 0x499031
mov esi, dword [edi + 4]
mov eax, edx
inc eax
mov dword [edi + 0x20], eax
lea eax, [edx + edx*4]
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x44]
mov word [ecx], 0x38
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
inc eax
mov byte [ecx + 3], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x14]
mov ecx, eax
mov edx, dword [esp + 0x20]
mov esi, dword [eax + 8]
call fcn.0046f510
cmp dword [esi + 4], 0
mov ecx, dword [esi]
mov dword [esp + 0x50], eax
je 0x4990bb
cmp byte [ecx + 0x41], 0
jne 0x4990bb
mov edx, dword [esi + 0x20]
dec edx
lea eax, [edx + edx*4]
mov edx, dword [esi + 4]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx edx, byte [esi + 1]
call fcn.0044b510
mov eax, dword [esp + 0x54]
add esp, 4
test eax, eax
jne 0x4990b2
mov dword [esi + 0x10], eax
mov byte [esi + 1], al
jmp 0x4990c9
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
jmp 0x4990c9
push eax
mov edx, 0xfffffffa
call fcn.0044b510
add esp, 4
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0x14]
inc dword [eax + 0x64]
movzx eax, byte [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x4c]
shl ecx, 4
mov eax, dword [eax]
mov eax, dword [eax + 4]
add ecx, eax
mov dword [esp + 0x40], ecx
test byte [ecx + 0x30], 4
je 0x499282
mov eax, dword [ecx + 0x24]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x20]
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
mov eax, dword [ecx + 0x54]
cmp eax, edx
jg 0x499190
test eax, eax
je 0x499125
lea eax, [eax + eax*4]
shl eax, 3
jmp 0x49912a
mov eax, 0x3fc
mov edx, dword [edi + 4]
mov ecx, dword [ecx]
push 0
push eax
call fcn.0042d130
mov esi, eax
add esp, 8
test esi, esi
je 0x4991c7
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
test eax, eax
je 0x499167
cmp esi, dword [eax + 0x114]
jb 0x499167
cmp esi, dword [eax + 0x118]
jae 0x499167
movzx ecx, word [eax + 0xf8]
jmp 0x499173
push esi
call dword [0x547f10]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x4c]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x50]
mov dword [edi + 4], esi
jmp 0x499195
mov esi, dword [edi + 4]
mov eax, edx
mov ecx, dword [esp + 0x44]
inc eax
mov dword [edi + 0x20], eax
lea eax, [edx + edx*4]
mov dword [esi + eax*4 + 4], ecx
mov ecx, dword [esp + 0x48]
mov word [esi + eax*4], 0x11
mov byte [esi + eax*4 + 3], 0
mov dword [esi + eax*4 + 8], 0
mov dword [esi + eax*4 + 0xc], ecx
mov dword [esi + eax*4 + 0x10], 0
mov ecx, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov edx, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], ecx
mov eax, dword [ecx + 0x54]
cmp eax, esi
jg 0x499267
test eax, eax
je 0x4991ee
lea eax, [eax + eax*4]
shl eax, 3
jmp 0x4991f3
mov eax, 0x3fc
mov edx, dword [edi + 4]
mov ecx, dword [ecx]
push 0
push eax
call fcn.0042d130
mov ecx, eax
add esp, 8
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x499259
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
test eax, eax
je 0x499230
cmp ecx, dword [eax + 0x114]
jb 0x499230
cmp ecx, dword [eax + 0x118]
jae 0x499230
movzx edx, word [eax + 0xf8]
jmp 0x499240
push ecx
call dword [0x547f10]
mov ecx, dword [esp + 0x50]
mov edx, eax
add esp, 4
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x48]
shr edx, 4
mov dword [eax + 0x54], edx
mov edx, dword [edi + 0x20]
mov dword [edi + 4], ecx
jmp 0x49926a
mov eax, 1
mov dword [esp + 0x24], eax
jmp 0x49934e
mov ecx, dword [edi + 4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x44]
mov dword [edi + 0x20], eax
lea eax, [esi + esi*4]
mov word [ecx + eax*4], 0x14
jmp 0x49932d
mov ecx, dword [edi + 0x18]
mov eax, dword [edx + 4]
mov esi, dword [edi + 0x20]
mov edx, esi
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], ecx
cmp eax, esi
jg 0x499317
test eax, eax
je 0x4992ac
lea eax, [eax + eax*4]
shl eax, 3
jmp 0x4992b1
mov eax, 0x3fc
mov edx, dword [edi + 4]
mov ecx, dword [ecx]
push 0
push eax
call fcn.0042d130
mov ecx, eax
add esp, 8
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x499259
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
test eax, eax
je 0x4992ee
cmp ecx, dword [eax + 0x114]
jb 0x4992ee
cmp ecx, dword [eax + 0x118]
jae 0x4992ee
movzx edx, word [eax + 0xf8]
jmp 0x4992fe
push ecx
call dword [0x547f10]
mov ecx, dword [esp + 0x50]
mov edx, eax
add esp, 4
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x48]
shr edx, 4
mov dword [eax + 0x54], edx
mov edx, dword [edi + 0x20]
mov dword [edi + 4], ecx
jmp 0x49931a
mov ecx, dword [edi + 4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x50]
mov dword [edi + 0x20], eax
lea eax, [esi + esi*4]
mov word [ecx + eax*4], 0x6d
mov dword [ecx + eax*4 + 0x10], 0
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 8], 0
mov dword [ecx + eax*4 + 4], edx
mov byte [ecx + eax*4 + 3], 0
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x49949b
mov edx, dword [edi + 0x18]
mov dword [esp + 0x50], edx
mov esi, dword [edx + 0x6c]
mov dword [esp + 0x34], esi
lea eax, [esi + 1]
mov dword [edx + 0x6c], eax
lea eax, [esi - 1]
test esi, eax
jne 0x49946b
mov ecx, dword [edx + 0x70]
mov esi, dword [edx]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x4c], ecx
push 0
lea eax, [edx*8 + 4]
mov edx, ecx
push eax
mov ecx, esi
call fcn.0042d130
add esp, 8
mov dword [esp + 0x48], eax
test eax, eax
jne 0x499454
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x499454
test esi, esi
je 0x4993f4
cmp dword [esi + 0x208], eax
je 0x4993ce
mov edx, ecx
mov ecx, esi
call fcn.0042cdd0
jmp 0x499454
cmp ecx, dword [esi + 0x114]
jb 0x4993f4
cmp ecx, dword [esi + 0x118]
jae 0x4993f4
mov eax, dword [esi + 0x110]
mov dword [ecx], eax
dec dword [esi + 0xfc]
mov dword [esi + 0x110], ecx
jmp 0x499454
cmp dword [0x547ee0], 0
je 0x49944a
mov eax, dword [0x54b238]
test eax, eax
je 0x499414
push eax
call dword [0x547f34]
mov ecx, dword [esp + 0x50]
add esp, 4
push ecx
call dword [0x547f10]
mov ecx, dword [esp + 0x50]
add esp, 4
sub dword [0x54b0c0], eax
dec dword [0x54b0e4]
push ecx
call dword [0x547f08]
mov eax, dword [0x54b238]
add esp, 4
test eax, eax
je 0x499454
push eax
call dword [0x547f3c]
jmp 0x499451
push ecx
call dword [0x547f08]
add esp, 4
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x34]
mov dword [eax + 0x70], ecx
mov eax, ecx
mov ecx, dword [esp + 0x1c]
jmp 0x49946e
mov eax, dword [edx + 0x70]
test eax, eax
je 0x499479
mov dword [eax + esi*4], 0xffffffff
not esi
mov edx, ecx
mov ecx, dword [esp + 0x14]
push 0x10
push esi
mov dword [esp + 0x3c], esi
call fcn.00464210
mov eax, dword [esp + 0x30]
add esp, 8
or dword [eax + 0x24], 0x20000
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x13]
test al, al
jne 0x4994ae
inc dword [ecx + 0x48]
mov eax, dword [ecx + 0x48]
jmp 0x4994ba
dec al
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x18]
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 0x20]
push 0
push 0
push 0
push 0
push eax
push dword [esi + 4]
mov dword [esp + 0x64], eax
call fcn.00471520
mov ecx, dword [edi + 0x18]
add esp, 0x18
mov eax, dword [esi + 8]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
cmp eax, edx
jg 0x49956c
test eax, eax
je 0x499501
lea eax, [eax + eax*4]
shl eax, 3
jmp 0x499506
mov eax, 0x3fc
mov edx, dword [edi + 4]
mov ecx, dword [ecx]
push 0
push eax
call fcn.0042d130
mov esi, eax
add esp, 8
test esi, esi
je 0x4995a3
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
test eax, eax
je 0x499543
cmp esi, dword [eax + 0x114]
jb 0x499543
cmp esi, dword [eax + 0x118]
jae 0x499543
movzx ecx, word [eax + 0xf8]
jmp 0x49954f
push esi
call dword [0x547f10]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x48]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x50]
mov dword [edi + 4], esi
jmp 0x499571
mov esi, dword [edi + 4]
mov eax, edx
mov ecx, dword [esp + 0x44]
inc eax
mov dword [edi + 0x20], eax
lea eax, [edx + edx*4]
mov dword [esi + eax*4 + 4], ecx
mov ecx, dword [esp + 0x4c]
mov word [esi + eax*4], 0x6f
mov byte [esi + eax*4 + 3], 0
mov dword [esi + eax*4 + 8], ecx
mov dword [esi + eax*4 + 0xc], 0
mov dword [esi + eax*4 + 0x10], 0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4995b5
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x10
cmp dword [esp + 0x1c], 0
je 0x4995dd
mov esi, dword [esp + 0x34]
mov edx, dword [edi + 0x18]
not esi
test esi, esi
js 0x4995d6
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x4995d6
mov eax, dword [edi + 0x20]
mov dword [ecx + esi*4], eax
mov eax, dword [edi + 0x20]
dec eax
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x40]
mov edx, dword [ebp + 0x14]
test byte [eax + 0x30], 4
je 0x4996dc
push dword [eax + 0x28]
mov esi, dword [esp + 0x28]
mov ecx, edi
push dword [edx + 4]
mov edx, esi
call fcn.00498890
mov ecx, dword [edi + 0x18]
add esp, 8
mov edx, dword [edi + 0x20]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x50], edx
cmp eax, edx
jg 0x49969a
test eax, eax
je 0x499629
lea eax, [eax + eax*4]
shl eax, 3
jmp 0x49962e
mov eax, 0x3fc
mov edx, dword [edi + 4]
mov ecx, dword [ecx]
push 0
push eax
call fcn.0042d130
add esp, 8
mov dword [esp + 0x50], eax
test eax, eax
je 0x4996cf
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx]
test ecx, ecx
je 0x49966d
cmp eax, dword [ecx + 0x114]
jb 0x49966d
cmp eax, dword [ecx + 0x118]
jae 0x49966d
movzx ecx, word [ecx + 0xf8]
jmp 0x499679
push eax
call dword [0x547f10]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x48]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
mov dword [edi + 4], eax
mov eax, dword [edi + 0x20]
jmp 0x49969e
mov eax, dword [esp + 0x50]
inc eax
lea ecx, [edx + edx*4]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x40]
and dword [ecx + 0x30], 0xfffffffb
jmp 0x4997af
mov ecx, dword [edi + 0x18]
mov eax, dword [edx + 4]
mov edx, dword [edi + 0x20]
mov esi, edx
mov dword [esp + 0x44], eax
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
cmp eax, edx
jg 0x49976f
test eax, eax
je 0x499706
lea eax, [eax + eax*4]
shl eax, 3
jmp 0x49970b
mov eax, 0x3fc
mov edx, dword [edi + 4]
mov ecx, dword [ecx]
push 0
push eax
call fcn.0042d130
mov esi, eax
add esp, 8
test esi, esi
je 0x4997ab
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
test eax, eax
je 0x499748
cmp esi, dword [eax + 0x114]
jb 0x499748
cmp esi, dword [eax + 0x118]
jae 0x499748
movzx ecx, word [eax + 0xf8]
jmp 0x499754
push esi
call dword [0x547f10]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x48]
shr edx, 4
mov dword [eax + 0x54], edx
mov edx, dword [esp + 0x50]
mov dword [edi + 4], esi
mov esi, dword [edi + 0x20]
lea eax, [esi + 1]
mov esi, dword [esp + 0x24]
mov dword [edi + 0x20], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 4]
mov word [eax + ecx*4], 8
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
lea eax, [esi + 1]
mov dword [ecx + 8], eax
jmp 0x4997af
mov esi, dword [esp + 0x24]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4997c1
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 3
mov edx, dword [edi + 0x20]
cmp edx, esi
jbe 0x4997d5
mov eax, dword [edi + 4]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x14]
mov dword [eax + 0x58], ecx
test edx, edx
je 0x499820
mov al, byte [esi + 0x13]
mov byte [esp + 0xf], al
cmp al, 8
jae 0x499820
xor ecx, ecx
lea eax, [esi + 0x74]
nop word [eax + eax]
cmp dword [eax + 0xc], edx
je 0x49981c
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x499800
movzx eax, byte [esp + 0xf]
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x13]
jmp 0x499820
mov byte [eax + 6], 1
mov ecx, esi
call fcn.00462440
mov edx, dword [edi + 0x20]
mov eax, dword [esp + 0x5c]
cmp edx, eax
jbe 0x49983f
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
mov dword [eax + 0x58], ecx
jmp 0x49984e
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov esi, dword [esi]
test edi, edi
je 0x499a00
test dword [edi + 4], 0x4000
jne 0x49994e
mov edx, dword [edi + 0xc]
mov ecx, esi
call fcn.0045f940
mov edx, dword [edi + 0x10]
mov ecx, esi
call fcn.0045f940
test dword [edi + 4], 0x10000
je 0x49992f
mov edi, dword [edi + 8]
test edi, edi
je 0x49992b
test esi, esi
je 0x4998d3
cmp dword [esi + 0x208], 0
je 0x4998ad
mov edx, edi
mov ecx, esi
call fcn.0042cdd0
jmp 0x49992b
cmp edi, dword [esi + 0x114]
jb 0x4998d3
cmp edi, dword [esi + 0x118]
jae 0x4998d3
mov eax, dword [esi + 0x110]
mov dword [edi], eax
dec dword [esi + 0xfc]
mov dword [esi + 0x110], edi
jmp 0x49992b
cmp dword [0x547ee0], 0
je 0x499921
mov eax, dword [0x54b238]
test eax, eax
je 0x4998ef
push eax
call dword [0x547f34]
add esp, 4
push edi
call dword [0x547f10]
sub dword [0x54b0c0], eax
add esp, 4
dec dword [0x54b0e4]
push edi
call dword [0x547f08]
mov eax, dword [0x54b238]
add esp, 4
test eax, eax
je 0x49992b
push eax
call dword [0x547f3c]
jmp 0x499928
push edi
call dword [0x547f08]
add esp, 4
mov edi, dword [esp + 0x1c]
test dword [edi + 4], 0x800
mov ecx, esi
mov edx, dword [edi + 0x14]
je 0x499949
push 1
call fcn.00481cc0
add esp, 4
jmp 0x49994e
call fcn.004606c0
test dword [edi + 4], 0x8000
jne 0x499a00
test esi, esi
je 0x4999a1
cmp dword [esi + 0x208], 0
je 0x499977
mov edx, edi
mov ecx, esi
call fcn.0042cdd0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, dword [esi + 0x114]
jb 0x4999a1
cmp edi, dword [esi + 0x118]
jae 0x4999a1
mov eax, dword [esi + 0x110]
mov dword [edi], eax
dec dword [esi + 0xfc]
mov dword [esi + 0x110], edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [0x547ee0], 0
je 0x4999f6
mov eax, dword [0x54b238]
test eax, eax
je 0x4999bd
push eax
call dword [0x547f34]
add esp, 4
push edi
call dword [0x547f10]
sub dword [0x54b0c0], eax
add esp, 4
dec dword [0x54b0e4]
push edi
call dword [0x547f08]
mov eax, dword [0x54b238]
add esp, 4
test eax, eax
je 0x499a00
push eax
call dword [0x547f3c]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push edi
call dword [0x547f08]
add esp, 4
pop edi
pop esi
mov esp, ebp
pop ebp
ret