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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51c22c
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x56858c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov esi, ecx
mov dword [ebp - 0x34], ebx
mov eax, dword [esi + 4]
cmp eax, 0x10
ja case.default.0x49ea63
mov edi, edi
or edi, 0xffffffff
jmp dword [eax*4 + 0x4a0134]
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], 0xff
mov dword [esi + 0x78], ebx
mov dword [esi + 0x68], 0x3a
mov ecx, dword [esi + 0x80]
cmp ecx, ebx
jne 0x49eaa4
xor eax, eax
jmp 0x49eac0
mov eax, dword [esi + 0x88]
cmp eax, ebx
je 0x49eab3
mov edx, dword [eax + 0xc]
jmp 0x49eab5
xor edx, edx
mov eax, dword [esi + 0x84]
imul eax, edx
add eax, ecx
mov dword [esi + 0x50], eax
mov dword [esi + 0x7c], 0x14
mov dword [esi + 4], 5
jmp 0x49eece
mov edx, dword [esi + 0xa4]
cmp edx, ebx
jne 0x49eae4
xor eax, eax
jmp 0x49eb00
mov eax, dword [esi + 0xac]
cmp eax, ebx
je 0x49eaf3
mov ecx, dword [eax + 0xc]
jmp 0x49eaf5
xor ecx, ecx
mov eax, dword [esi + 0xa8]
imul eax, ecx
add eax, edx
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [eax + 4], ecx
mov ecx, 0x56a4b4
mov dword [eax + 8], edx
call fcn.00416a20
mov eax, dword [0x5699f0]
mov byte [eax + 0x215], 0
mov ecx, 0x56a4b4
mov byte [esi + 0xc], 0
call fcn.00416a20
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x18]
cmp eax, ebx
jne 0x49eb41
xor ecx, ecx
jmp 0x49eb57
mov edx, dword [ecx + 0x20]
cmp edx, ebx
je 0x49eb4d
mov edx, dword [edx + 0xc]
jmp 0x49eb4f
xor edx, edx
mov ecx, dword [ecx + 0x1c]
imul ecx, edx
add ecx, eax
lea edx, [ebp - 0x54]
push edx
call fcn.004753f0
lea ecx, [esi + 0x8c]
push eax
mov dword [ebp - 4], 3
call fcn.0043d940
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 4], edi
cmp eax, ebx
je 0x49eba9
add dword [eax + 4], edi
mov ecx, eax
cmp dword [eax + 4], ebx
jne 0x49eba3
cmp byte [ecx + 8], 0
je 0x49eb93
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
mov ecx, dword [ebp - 0x4c]
cmp ecx, ebx
je 0x49eba3
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x54], ebx
mov ecx, 0x56a4bc
call fcn.00416ad0
mov edi, dword [0x5699f4]
mov ecx, dword [edi + 0x34]
sub ecx, dword [edi + 0x30]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jbe 0x49ebfe
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x49ebfe
mov edx, dword [eax + 0x20]
cmp edx, ebx
je 0x49ebf2
mov eax, dword [eax + 0x1c]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x49ec00
mov eax, dword [eax + 0x1c]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x49ec00
xor eax, eax
mov dword [eax + 4], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], 0xff
mov dword [esi + 0x78], ebx
mov dword [esi + 0x68], ebx
mov ecx, dword [esi + 0x80]
cmp ecx, ebx
jne 0x49ec40
xor eax, eax
jmp 0x49ec5c
mov eax, dword [esi + 0x88]
cmp eax, ebx
je 0x49ec4f
mov edx, dword [eax + 0xc]
jmp 0x49ec51
xor edx, edx
mov eax, dword [esi + 0x84]
imul eax, edx
add eax, ecx
mov dword [esi + 0x50], eax
mov ecx, dword [esi + 0x8c]
cmp ecx, ebx
jne 0x49ec6d
xor eax, eax
jmp 0x49ec89
mov eax, dword [esi + 0x94]
cmp eax, ebx
je 0x49ec7c
mov edx, dword [eax + 0xc]
jmp 0x49ec7e
xor edx, edx
mov eax, dword [esi + 0x90]
imul eax, edx
add eax, ecx
mov ecx, dword [eax + 4]
inc dword [esi + 4]
mov dword [esi + 0x54], ecx
mov dword [esi + 0x7c], 0x14
jmp 0x49eece
mov ecx, esi
call fcn.00499a60
test al, al
je case.default.0x49ea63
mov ecx, 0x56a4b4
mov byte [esi + 0xc], 0
call fcn.00416a20
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x18]
cmp eax, ebx
jne 0x49eccc
xor ecx, ecx
jmp 0x49ece2
mov edx, dword [ecx + 0x20]
cmp edx, ebx
je 0x49ecd8
mov edx, dword [edx + 0xc]
jmp 0x49ecda
xor edx, edx
mov ecx, dword [ecx + 0x1c]
imul ecx, edx
add ecx, eax
lea edx, [ebp - 0x60]
push edx
call fcn.004753f0
push eax
lea ecx, [esi + 0x8c]
mov dword [ebp - 4], 4
call fcn.0043d940
mov eax, dword [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x49ed38
dec dword [eax + 4]
mov ecx, eax
cmp dword [eax + 4], ebx
jne 0x49ed32
cmp byte [ecx + 8], 0
je 0x49ed22
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
mov ecx, dword [ebp - 0x58]
cmp ecx, ebx
je 0x49ed32
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x60], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], 0xff
mov dword [esi + 0x78], ebx
mov dword [esi + 0x68], ebx
mov ecx, dword [esi + 0x8c]
cmp ecx, ebx
jne 0x49ed75
xor eax, eax
jmp 0x49ed91
mov eax, dword [esi + 0x94]
cmp eax, ebx
je 0x49ed84
mov edx, dword [eax + 0xc]
jmp 0x49ed86
xor edx, edx
mov eax, dword [esi + 0x90]
imul eax, edx
add eax, ecx
mov eax, dword [eax + 4]
mov dword [esi + 0x54], eax
mov dword [esi + 0x7c], 0x14
mov eax, dword [esi + 0xa4]
cmp eax, ebx
jne 0x49edac
xor ecx, ecx
jmp 0x49edc8
mov ecx, dword [esi + 0xac]
cmp ecx, ebx
je 0x49edbb
mov edx, dword [ecx + 0xc]
jmp 0x49edbd
xor edx, edx
mov ecx, dword [esi + 0xa8]
imul ecx, edx
add ecx, eax
push 0x28
call fcn.00483120
mov eax, dword [esi + 0xa4]
cmp eax, ebx
jne 0x49eddd
xor ecx, ecx
jmp 0x49edf9
mov ecx, dword [esi + 0xac]
cmp ecx, ebx
je 0x49edec
mov edx, dword [ecx + 0xc]
jmp 0x49edee
xor edx, edx
mov ecx, dword [esi + 0xa8]
imul ecx, edx
add ecx, eax
push ebx
call fcn.00477320
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
jne 0x49ee19
xor eax, eax
jmp 0x49ee2f
mov edx, dword [eax + 0x20]
cmp edx, ebx
je 0x49ee25
mov edx, dword [edx + 0xc]
jmp 0x49ee27
xor edx, edx
mov eax, dword [eax + 0x1c]
imul eax, edx
add eax, ecx
mov edx, dword [eax + 8]
cmp edx, ebx
jne 0x49ee3a
xor eax, eax
jmp 0x49ee50
mov ecx, dword [eax + 0x10]
cmp ecx, ebx
je 0x49ee46
mov ecx, dword [ecx + 0xc]
jmp 0x49ee48
xor ecx, ecx
mov eax, dword [eax + 0xc]
imul eax, ecx
add eax, edx
mov edi, dword [esi + 0x98]
cmp edi, ebx
jne 0x49ee5e
xor edx, edx
jmp 0x49ee7a
mov ecx, dword [esi + 0xa0]
cmp ecx, ebx
je 0x49ee6d
mov ecx, dword [ecx + 0xc]
jmp 0x49ee6f
xor ecx, ecx
mov edx, dword [esi + 0x9c]
imul edx, ecx
add edx, edi
mov edi, dword [eax]
push ebx
push edx
mov edx, dword [edi + 0x1c]
mov ecx, eax
call edx
mov ecx, dword [esi + 0x98]
cmp ecx, ebx
jne 0x49ee93
xor eax, eax
jmp 0x49eeaf
mov eax, dword [esi + 0xa0]
cmp eax, ebx
je 0x49eea2
mov edx, dword [eax + 0xc]
jmp 0x49eea4
xor edx, edx
mov eax, dword [esi + 0x9c]
imul eax, edx
add eax, ecx
mov ecx, 0x56a451
mov dword [esi + 0x50], eax
call fcn.004074f0
mov ecx, dword [0x5699e4]
call fcn.00474cb0
mov dword [esi + 4], 0xa
mov eax, dword [esi + 4]
cmp eax, 0x10
jbe 0x49ea60
jmp case.default.0x49ea63
mov ecx, dword [esi + 0x94]
cmp ecx, ebx
je 0x49ef19
add dword [ecx + 4], edi
jne 0x49ef0d
cmp byte [ecx + 8], 0
je 0x49eefa
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
mov ecx, dword [esi + 0x94]
cmp ecx, ebx
je 0x49ef0d
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x8c], ebx
mov ecx, 0x56a480
call fcn.004056e0
mov ecx, dword [0x5699dc]
mov edx, dword [ecx + 0xc]
cmp edx, ebx
jne 0x49ef34
xor ecx, ecx
jmp 0x49ef4a
mov eax, dword [ecx + 0x14]
cmp eax, ebx
je 0x49ef40
mov eax, dword [eax + 0xc]
jmp 0x49ef42
xor eax, eax
mov ecx, dword [ecx + 0x10]
imul ecx, eax
add ecx, edx
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x3c]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4]
lea eax, [ecx + eax*4]
cmp edx, ebx
jne 0x49ef68
xor ecx, ecx
jmp 0x49ef7e
mov ecx, dword [eax + 8]
cmp ecx, ebx
je 0x49ef74
mov edi, dword [ecx + 0xc]
jmp 0x49ef76
xor edi, edi
mov ecx, dword [eax + 4]
imul ecx, edi
add ecx, edx
push ebx
call fcn.00478950
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x3c]
lea eax, [eax + edx*4]
mov edx, dword [eax]
cmp edx, ebx
jne 0x49ef9a
xor ecx, ecx
jmp 0x49efb0
mov ecx, dword [eax + 8]
cmp ecx, ebx
je 0x49efa6
mov edi, dword [ecx + 0xc]
jmp 0x49efa8
xor edi, edi
mov ecx, dword [eax + 4]
imul ecx, edi
add ecx, edx
mov edi, dword [esi + 0x98]
cmp edi, ebx
jne 0x49efbe
xor eax, eax
jmp 0x49efda
mov eax, dword [esi + 0xa0]
cmp eax, ebx
je 0x49efcd
mov edx, dword [eax + 0xc]
jmp 0x49efcf
xor edx, edx
mov eax, dword [esi + 0x9c]
imul eax, edx
add eax, edi
mov edx, dword [ecx]
push ebx
push eax
mov eax, dword [edx + 0x38]
call eax
mov ecx, 0x56a4b4
mov dword [esi + 4], ebx
call fcn.00416a20
mov ecx, dword [0x5699f0]
mov byte [ecx + 0x215], 1
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], 0xff
mov dword [esi + 0x78], ebx
mov dword [esi + 0x68], 0x39
mov ecx, dword [esi + 0x98]
cmp ecx, ebx
jne 0x49f03e
xor eax, eax
jmp 0x49f05a
mov eax, dword [esi + 0xa0]
cmp eax, ebx
je 0x49f04d
mov edx, dword [eax + 0xc]
jmp 0x49f04f
xor edx, edx
mov eax, dword [esi + 0x9c]
imul eax, edx
add eax, ecx
mov ecx, 0x56a4bc
mov dword [esi + 0x50], eax
mov dword [esi + 0x7c], 0x14
call fcn.00416ad0
mov edi, dword [0x5699f4]
mov ecx, dword [edi + 0x34]
sub ecx, dword [edi + 0x30]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x49f0b9
mov edi, dword [edi + 0x30]
mov ecx, dword [edi + 0xc]
cmp ecx, ebx
je 0x49f0b9
mov eax, dword [edi + 0x14]
cmp eax, ebx
je 0x49f0ad
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0x10]
imul eax, edx
add eax, ecx
jmp 0x49f0bb
mov eax, dword [edi + 0x10]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x49f0bb
xor eax, eax
mov edx, dword [eax + 0x20]
cmp edx, ebx
jne 0x49f0c7
mov dword [ebp - 0x14], ebx
jmp 0x49f0e0
mov ecx, dword [eax + 0x28]
cmp ecx, ebx
je 0x49f0d3
mov ecx, dword [ecx + 0xc]
jmp 0x49f0d5
xor ecx, ecx
mov eax, dword [eax + 0x24]
imul eax, ecx
add eax, edx
mov dword [ebp - 0x14], eax
mov ecx, dword [0x56a544]
mov dword [ebp - 0x38], ecx
mov ecx, 0x56a4bc
call fcn.00416ad0
mov edi, dword [0x5699f4]
mov ecx, dword [edi + 0x34]
sub ecx, dword [edi + 0x30]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jbe 0x49f14b
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
jne 0x49f125
xor eax, eax
mov dword [ebp - 0x34], eax
jmp 0x49f14e
mov edx, dword [eax + 0x20]
cmp edx, ebx
je 0x49f13c
mov eax, dword [eax + 0x1c]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
mov dword [ebp - 0x34], eax
jmp 0x49f14e
mov eax, dword [eax + 0x1c]
xor edx, edx
imul eax, edx
add eax, ecx
mov dword [ebp - 0x34], eax
jmp 0x49f14e
mov dword [ebp - 0x34], ebx
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov ecx, dword [eax + 0x24]
cmp ecx, ebx
jne 0x49f168
xor edi, edi
jmp 0x49f17e
mov edx, dword [eax + 0x2c]
cmp edx, ebx
je 0x49f174
mov edx, dword [edx + 0xc]
jmp 0x49f176
xor edx, edx
mov edi, dword [eax + 0x28]
imul edi, edx
add edi, ecx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [eax]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x38], ebx
jne 0x49f196
xor eax, eax
jmp 0x49f1a9
mov eax, dword [ebp - 0x38]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x49f1a0
sub eax, edx
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
push eax
push edx
add ecx, 0x2c
call fcn.004049b0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x38]
push 1
push eax
push ecx
mov ecx, edi
call fcn.004228b0
mov dword [esi + 4], 1
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov ecx, 0x55925c
mov dword [ebp - 0x1c], vtable.CCriticalLock.0
mov dword [ebp - 0x18], ecx
call eax
mov dword [ebp - 0x14], 1
mov dword [ebp - 4], ebx
cmp dword [0x5699f4], ebx
jne 0x49f26d
push 0x68
call fcn.00503a77
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x49f265
mov edx, dword [0x5684f8]
mov eax, dword [edx + 0xc]
mov ecx, 0x5684f8
call eax
add eax, 0x10
mov dword [edi + 0x10], eax
mov edx, dword [0x5684f8]
mov eax, dword [edx + 0xc]
mov ecx, 0x5684f8
call eax
add eax, 0x10
mov dword [edi + 0x14], eax
mov dword [edi + 0x30], ebx
mov dword [edi + 0x34], ebx
mov dword [edi + 0x38], ebx
mov dword [edi + 0x40], ebx
mov dword [edi + 0x44], ebx
mov dword [edi + 0x48], ebx
mov dword [edi + 0x50], ebx
mov dword [edi + 0x54], ebx
mov dword [edi + 0x58], ebx
mov dword [edi + 0x5c], ebx
mov dword [edi + 0x60], ebx
mov dword [edi + 0x64], ebx
jmp 0x49f267
xor edi, edi
mov dword [0x5699f4], edi
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx + 4]
mov ecx, 0x55925c
mov dword [ebp - 4], 0xffffffff
call eax
mov edi, dword [0x5699f4]
mov ecx, dword [edi + 0x34]
sub ecx, dword [edi + 0x30]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 5
jbe 0x49f2cf
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x3c]
cmp ecx, ebx
je 0x49f2cf
mov edx, dword [eax + 0x44]
cmp edx, ebx
je 0x49f2c3
mov eax, dword [eax + 0x40]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x49f2d1
mov eax, dword [eax + 0x40]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x49f2d1
xor eax, eax
mov ecx, eax
call fcn.00479b10
test al, al
je 0x49f2ee
mov eax, dword [esi + 0x74]
add dword [esi + 0x70], 0x100
cmp dword [esi + 0x70], eax
jl 0x49f2ee
mov dword [esi + 0x70], eax
cmp dword [esi + 0x68], 0xffffffff
lea edi, [esi + 0x4c]
je 0x49f2ff
mov edx, dword [edi + 0x24]
cmp edx, dword [edi + 0x28]
jl 0x49f302
inc dword [esi + 4]
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
jne 0x49f31c
xor eax, eax
jmp 0x49f332
mov edx, dword [eax + 0x20]
cmp edx, ebx
je 0x49f328
mov edx, dword [edx + 0xc]
jmp 0x49f32a
xor edx, edx
mov eax, dword [eax + 0x1c]
imul eax, edx
add eax, ecx
mov edx, dword [eax + 0x24]
cmp edx, ebx
jne 0x49f33d
xor eax, eax
jmp 0x49f353
mov ecx, dword [eax + 0x2c]
cmp ecx, ebx
je 0x49f349
mov ecx, dword [ecx + 0xc]
jmp 0x49f34b
xor ecx, ecx
mov eax, dword [eax + 0x28]
imul eax, ecx
add eax, edx
push edi
mov ecx, eax
call fcn.00434300
mov eax, dword [esi + 0x7c]
add dword [edi + 0x24], eax
mov eax, dword [edi + 0x28]
cmp dword [edi + 0x24], eax
jl 0x49f36c
mov dword [edi + 0x24], eax
mov ecx, 0x56a451
call fcn.004074f0
mov eax, dword [0x5699e4]
mov ecx, dword [eax]
cmp ecx, ebx
je case.default.0x49ea63
mov edx, dword [eax + 8]
cmp edx, ebx
je 0x49f391
mov edx, dword [edx + 0xc]
jmp 0x49f393
xor edx, edx
mov esi, dword [eax + 4]
imul esi, edx
add esi, ecx
push str.InvalidatedRect
lea ecx, [ebp - 0x34]
call fcn.0040e800
mov ecx, dword [ebp - 0x34]
mov edx, dword [esi + 4]
push ecx
push edx
call dword [0x5261dc]
mov esi, eax
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49f3d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
call esi
add esp, 4
jmp case.default.0x49ea63
mov ecx, 0x56a4bc
call fcn.00416ad0
mov edi, dword [0x5699f4]
mov ecx, dword [edi + 0x34]
sub ecx, dword [edi + 0x30]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
jbe 0x49f437
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x49f437
mov edx, dword [eax + 0x20]
cmp edx, ebx
je 0x49f42b
mov eax, dword [eax + 0x1c]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x49f439
mov eax, dword [eax + 0x1c]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x49f439
xor eax, eax
mov ecx, 3
mov dword [eax + 4], ecx
mov dword [esi + 4], ecx
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov edx, dword [eax + 0x30]
cmp edx, ebx
jne 0x49f45e
xor ecx, ecx
jmp 0x49f470
mov ecx, dword [eax + 0x38]
cmp ecx, ebx
je 0x49f468
mov ebx, dword [ecx + 0xc]
mov ecx, dword [eax + 0x34]
imul ecx, ebx
add ecx, edx
lea edx, [ebp - 0x44]
push edx
call fcn.0047a840
mov eax, dword [eax]
push 0x52be80
push eax
call fcn.005047d4
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x44]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49f4ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x49f565
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x49f4cf
xor eax, eax
jmp 0x49f4e5
mov edx, dword [eax + 0x38]
test edx, edx
je 0x49f4db
mov edx, dword [edx + 0xc]
jmp 0x49f4dd
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
push 0
push 0x52791c
lea ecx, [eax + 0x1c]
call fcn.004049b0
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x49f50e
xor eax, eax
jmp 0x49f524
mov edx, dword [eax + 0x38]
test edx, edx
je 0x49f51a
mov edx, dword [edx + 0xc]
jmp 0x49f51c
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x49f53e
xor eax, eax
push 0x52be80
mov ecx, eax
call fcn.0047a0f0
jmp case.default.0x49ea63
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x49f54a
mov ecx, dword [ecx + 0xc]
jmp 0x49f54c
xor ecx, ecx
mov eax, dword [eax + 0x14]
imul eax, ecx
add eax, edx
push 0x52be80
mov ecx, eax
call fcn.0047a0f0
jmp case.default.0x49ea63
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x3c]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
mov edx, dword [eax]
test edx, edx
jne 0x49f57b
xor ecx, ecx
jmp 0x49f591
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x49f587
mov edi, dword [ecx + 0xc]
jmp 0x49f589
xor edi, edi
mov ecx, dword [eax + 4]
imul ecx, edi
add ecx, edx
mov eax, dword [ecx]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esi + 0x3c]
mov ebx, eax
mov eax, dword [esi + 0x10]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x34], ebx
test edx, edx
jne 0x49f5b4
xor eax, eax
jmp 0x49f5ca
mov eax, dword [ecx + 8]
test eax, eax
je 0x49f5c0
mov edi, dword [eax + 0xc]
jmp 0x49f5c2
xor edi, edi
mov eax, dword [ecx + 4]
imul eax, edi
add eax, edx
cmp ebx, dword [eax + 0x44]
jl 0x49f717
mov edi, edx
test edi, edi
jne 0x49f5dd
xor eax, eax
jmp 0x49f5f3
mov eax, dword [ecx + 8]
test eax, eax
je 0x49f5e9
mov edx, dword [eax + 0xc]
jmp 0x49f5eb
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, edi
mov edi, ebx
sub edi, dword [eax + 0x44]
mov ecx, 0x56a4b4
call fcn.00416a20
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x49f613
xor ecx, ecx
jmp 0x49f629
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x49f61f
mov edx, dword [edx + 0xc]
jmp 0x49f621
xor edx, edx
mov ecx, dword [ecx + 0x34]
imul ecx, edx
add ecx, eax
call fcn.00445160
mov eax, dword [eax + 8]
test eax, eax
je 0x49f638
mov eax, dword [eax + 0x10]
cmp edi, eax
jge 0x49f644
mov dword [esi + 0x14], edi
jmp 0x49fb33
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + edx*4]
lea eax, [eax + edx*4]
test ecx, ecx
jne 0x49f65b
xor eax, eax
jmp 0x49f671
mov edx, dword [eax + 8]
test edx, edx
je 0x49f667
mov edx, dword [edx + 0xc]
jmp 0x49f669
xor edx, edx
mov eax, dword [eax + 4]
imul eax, edx
add eax, ecx
mov edi, dword [eax + 0x44]
mov ecx, 0x56a4b4
call fcn.00416a20
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x49f68f
xor ecx, ecx
jmp 0x49f6a5
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x49f69b
mov edx, dword [edx + 0xc]
jmp 0x49f69d
xor edx, edx
mov ecx, dword [ecx + 0x34]
imul ecx, edx
add ecx, eax
call fcn.00445160
mov eax, dword [eax + 8]
test eax, eax
je 0x49f6b4
mov eax, dword [eax + 0x10]
sub ebx, eax
sub ebx, edi
mov eax, ebx
cmp dword [esi + 0x10], eax
je 0x49fb3a
mov edx, dword [esi + 0x3c]
mov dword [esi + 0x10], eax
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
mov edx, dword [eax]
test edx, edx
jne 0x49f6e3
xor ecx, ecx
push 1
call fcn.00478950
jmp 0x49fb3a
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x49f701
mov edi, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
imul ecx, edi
add ecx, edx
push 1
call fcn.00478950
jmp 0x49fb3a
mov ecx, dword [eax + 4]
xor edi, edi
imul ecx, edi
add ecx, edx
push 1
call fcn.00478950
jmp 0x49fb3a
test ebx, ebx
js 0x49f8c0
mov ecx, dword [esi + 0xb0]
test ecx, ecx
jne 0x49f72d
xor eax, eax
jmp 0x49f749
mov eax, dword [esi + 0xb8]
test eax, eax
je 0x49f73c
mov edx, dword [eax + 0xc]
jmp 0x49f73e
xor edx, edx
mov eax, dword [esi + 0xb4]
imul eax, edx
add eax, ecx
mov edx, dword [eax + 0x24]
test edx, edx
jne 0x49f754
xor eax, eax
jmp 0x49f76a
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x49f760
mov ecx, dword [ecx + 0xc]
jmp 0x49f762
xor ecx, ecx
mov eax, dword [eax + 0x28]
imul eax, ecx
add eax, edx
mov ecx, eax
call fcn.004c9a10
lea ebx, [esi + 0x18]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
cmp eax, ecx
je 0x49f7b3
mov edx, ecx
cmp ecx, ecx
je 0x49f7ad
mov edi, ecx
sub edi, eax
mov ebx, dword [edx]
mov dword [eax], ebx
mov ebx, dword [edi + eax + 4]
mov dword [eax + 4], ebx
add edx, 8
add eax, 8
cmp edx, ecx
jne 0x49f798
lea ebx, [esi + 0x18]
mov dword [ebx + 0x18], eax
mov ecx, 0x56a4bc
call fcn.00416ad0
mov edi, dword [0x5699f4]
mov ecx, dword [edi + 0x34]
sub ecx, dword [edi + 0x30]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 3
jbe 0x49f808
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x49f808
mov edx, dword [eax + 0x2c]
test edx, edx
je 0x49f7fc
mov eax, dword [eax + 0x28]
mov edx, dword [edx + 0xc]
imul eax, edx
add eax, ecx
jmp 0x49f80a
mov eax, dword [eax + 0x28]
xor edx, edx
imul eax, edx
add eax, ecx
jmp 0x49f80a
xor eax, eax
lea ecx, [esi + 0x1c]
push ecx
mov ecx, dword [ebp - 0x34]
lea edx, [esi + 0x20]
push edx
mov edx, dword [esi + 0x10]
push ebx
push ecx
push edx
mov ecx, eax
call fcn.00483310
test al, al
je case.default.0x49ea63
xor edi, edi
cmp dword [ebx], edi
jle 0x49f888
mov eax, dword [ebp - 0x34]
mov ecx, dword [esi + 0x10]
push edi
push eax
push ecx
push 3
call fcn.004174d0
mov ecx, eax
call fcn.00404910
mov ecx, eax
call fcn.004834b0
mov ebx, eax
cmp ebx, 0xffffffff
je 0x49f867
lea edx, [ebp - 0x18]
push edx
lea ecx, [esi + 0x2c]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ebx
call fcn.00483910
xor eax, eax
cmp ebx, 0xffffffff
setne al
lea ecx, [esi + 0xb0]
push eax
call fcn.00406d00
mov ecx, eax
call fcn.00483670
inc edi
cmp edi, dword [esi + 0x18]
jl 0x49f830
call fcn.004174c0
mov ecx, eax
call fcn.004068a0
mov ecx, eax
call fcn.00440520
push 0
call fcn.004174c0
mov ecx, eax
call fcn.004068a0
mov ecx, eax
call fcn.00406920
mov byte [eax + 0xc], 0
mov dword [esi + 4], 7
jmp 0x49fb3a
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov edx, dword [eax + 0x30]
test edx, edx
jne 0x49f8da
xor ecx, ecx
jmp 0x49f8f0
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x49f8e6
mov edi, dword [ecx + 0xc]
jmp 0x49f8e8
xor edi, edi
mov ecx, dword [eax + 0x34]
imul ecx, edi
add ecx, edx
lea edx, [ebp - 0x3c]
push edx
call fcn.0047a840
mov eax, dword [eax]
push 0x5280a0
push eax
call fcn.005047d4
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x3c]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49f92d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
test bl, bl
je 0x49f97c
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x49f94b
xor eax, eax
jmp 0x49f961
mov edx, dword [eax + 0x38]
test edx, edx
je 0x49f957
mov edx, dword [edx + 0xc]
jmp 0x49f959
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
push 0
push 0x52791c
lea ecx, [eax + 0x1c]
call fcn.004049b0
mov dword [esi + 0x14], 1
jmp 0x49fb33
mov edx, dword [eax + 0x30]
test edx, edx
jne 0x49f987
xor ecx, ecx
jmp 0x49f99d
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x49f993
mov edi, dword [ecx + 0xc]
jmp 0x49f995
xor edi, edi
mov ecx, dword [eax + 0x34]
imul ecx, edi
add ecx, edx
lea edx, [ebp - 0x48]
push edx
call fcn.0047a840
mov eax, dword [eax]
push 0x528090
push eax
call fcn.005047d4
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x48]
sete bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49f9da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
test bl, bl
je 0x49fa29
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x49f9f8
xor eax, eax
jmp 0x49fa0e
mov edx, dword [eax + 0x38]
test edx, edx
je 0x49fa04
mov edx, dword [edx + 0xc]
jmp 0x49fa06
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
push 0
push 0x52791c
lea ecx, [eax + 0x1c]
call fcn.004049b0
mov dword [esi + 0x14], 2
jmp 0x49fb33
mov edx, dword [eax + 0x30]
test edx, edx
jne 0x49fa34
xor ecx, ecx
jmp 0x49fa4a
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x49fa40
mov edi, dword [ecx + 0xc]
jmp 0x49fa42
xor edi, edi
mov ecx, dword [eax + 0x34]
imul ecx, edi
add ecx, edx
lea edx, [ebp - 0x40]
push edx
call fcn.0047a840
mov eax, dword [eax]
push 0x528084
push eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x34], 1
call fcn.005047d4
add esp, 8
test eax, eax
sete al
test al, al
jne 0x49fac1
mov ecx, 0x56a480
call fcn.004056e0
mov ecx, dword [0x5699dc]
cmp dword [ecx], 0
jne 0x49fa93
xor eax, eax
jmp 0x49faab
cmp dword [ecx + 8], 0
je 0x49faa1
mov eax, dword [ecx + 8]
mov edx, dword [eax + 0xc]
jmp 0x49faa3
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, dword [ecx]
cmp byte [eax + 0x31], 0
jne 0x49fabd
cmp byte [eax + 0x11], 0
je 0x49fabd
cmp dword [eax + 0x28], 0
je 0x49fac1
xor bl, bl
jmp 0x49fac3
mov bl, 1
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x49fae9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x49fb3a
mov ecx, 0x56a4b4
call fcn.00416a20
mov eax, dword [0x5699f0]
mov ecx, dword [eax + 0x30]
test ecx, ecx
jne 0x49fb07
xor eax, eax
jmp 0x49fb1d
mov edx, dword [eax + 0x38]
test edx, edx
je 0x49fb13
mov edx, dword [edx + 0xc]
jmp 0x49fb15
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
push 0
push 0x52791c
lea ecx, [eax + 0x1c]
call fcn.004049b0
mov dword [esi + 0x14], 3
mov dword [esi + 4], 4
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x3c]
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
mov edx, dword [eax]
test edx, edx
jne 0x49fb5a
xor ecx, ecx
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
call edx
jmp case.default.0x49ea63
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x49fb79
mov esi, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
imul ecx, esi
mov eax, dword [ecx + edx]
add ecx, edx
mov edx, dword [eax + 0x34]
call edx
jmp case.default.0x49ea63
mov ecx, dword [eax + 4]
xor esi, esi
imul ecx, esi
mov eax, dword [ecx + edx]
add ecx, edx
mov edx, dword [eax + 0x34]
call edx
jmp case.default.0x49ea63
mov esi, dword [esi + 0x14]
mov ecx, 0x56a4b4
call fcn.00416a20
dec esi
mov eax, dword [0x5699f0]
mov ecx, dword [eax + 0x30]
je 0x49fc63
dec esi
je 0x49fc09
cmp ecx, ebx
jne 0x49fbb7
xor eax, eax
jmp 0x49fbcd
mov edx, dword [eax + 0x38]
cmp edx, ebx
je 0x49fbc3
mov edx, dword [edx + 0xc]
jmp 0x49fbc5
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
mov edx, dword [eax + 0x10]
cmp edx, ebx
jne 0x49fbd8
xor esi, esi
jmp 0x49fbea
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x49fbe2
mov ebx, dword [ecx + 0xc]
mov esi, dword [eax + 0x14]
imul esi, ebx
add esi, edx
mov ecx, esi
call fcn.0040e3f0
lea eax, [ebp - 0x34]
push eax
lea ecx, [esi + 4]
mov dword [ebp - 0x34], 0x528084
call fcn.004a02c0
jmp case.default.0x49ea63
cmp ecx, ebx
jne 0x49fc11
xor eax, eax
jmp 0x49fc27
mov edx, dword [eax + 0x38]
cmp edx, ebx
je 0x49fc1d
mov edx, dword [edx + 0xc]
jmp 0x49fc1f
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
mov edx, dword [eax + 0x10]
cmp edx, ebx
jne 0x49fc32
xor esi, esi
jmp 0x49fc44
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x49fc3c
mov ebx, dword [ecx + 0xc]
mov esi, dword [eax + 0x14]
imul esi, ebx
add esi, edx
mov ecx, esi
call fcn.0040e3f0
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [esi + 4]
mov dword [ebp - 0x34], 0x528090
call fcn.004a02c0
jmp case.default.0x49ea63
cmp ecx, ebx
jne 0x49fc6b
xor eax, eax
jmp 0x49fc81
mov edx, dword [eax + 0x38]
cmp edx, ebx
je 0x49fc77
mov edx, dword [edx + 0xc]
jmp 0x49fc79
xor edx, edx
mov eax, dword [eax + 0x34]
imul eax, edx
add eax, ecx
mov edx, dword [eax + 0x10]
cmp edx, ebx
jne 0x49fc8c
xor esi, esi
jmp 0x49fc9e
mov ecx, dword [eax + 0x18]
cmp ecx, ebx
je 0x49fc96
mov ebx, dword [ecx + 0xc]
mov esi, dword [eax + 0x14]
imul esi, ebx
add esi, edx
mov ecx, esi
call fcn.0040e3f0
lea edx, [ebp - 0x34]
push edx
lea ecx, [esi + 4]
mov dword [ebp - 0x34], 0x5280a0
call fcn.004a02c0
jmp case.default.0x49ea63
lea ecx, [esi + 0x8c]
call fcn.004051f0
mov ecx, 0x56a4bc
mov byte [esi + 0xc], 1
mov dword [esi + 4], 0xc
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 2
call fcn.00404910
mov dword [eax + 4], 5
mov eax, dword [esi + 0xb0]
xor edi, edi
cmp eax, edi
jne 0x49fd01
xor ecx, ecx
jmp 0x49fd1d
mov ecx, dword [esi + 0xb8]
cmp ecx, edi
je 0x49fd10
mov edx, dword [ecx + 0xc]
jmp 0x49fd12
xor edx, edx
mov ecx, dword [esi + 0xb4]
imul ecx, edx
add ecx, eax
call fcn.00484660
dec eax
cmp eax, 5
ja case.0x49fd2c.2
jmp dword [eax*4 + 0x4a0178]
mov ecx, 0x56a4bc
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 2
call fcn.00404910
mov dword [eax + 4], edi
mov ecx, 0x56a4bc
mov dword [esi + 4], 0xe
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 1
call fcn.00404910
mov ecx, dword [eax + 0x20]
cmp ecx, edi
jne 0x49fd76
xor ebx, ebx
jmp 0x49fd8c
mov edx, dword [eax + 0x28]
cmp edx, edi
je 0x49fd82
mov edx, dword [edx + 0xc]
jmp 0x49fd84
xor edx, edx
mov ebx, dword [eax + 0x24]
imul ebx, edx
add ebx, ecx
mov edi, dword [0x56a4f8]
mov ecx, 0x56a4b4
call fcn.00416a20
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x24]
test eax, eax
jne 0x49fdad
xor esi, esi
jmp 0x49fdc3
mov edx, dword [ecx + 0x2c]
test edx, edx
je 0x49fdb9
mov edx, dword [edx + 0xc]
jmp 0x49fdbb
xor edx, edx
mov esi, dword [ecx + 0x28]
imul esi, edx
add esi, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x24]
mov ecx, ebx
call edx
mov eax, dword [eax]
push 1
push eax
push 0
push edi
mov ecx, esi
call fcn.004878f0
jmp case.default.0x49ea63
mov ecx, 0x56a4bc
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 2
call fcn.00404910
mov dword [eax + 4], edi
mov eax, dword [esi + 0xa4]
cmp eax, edi
jne 0x49fe10
xor ecx, ecx
call fcn.004835f0
jmp case.default.0x49ea63
mov ecx, dword [esi + 0xac]
cmp ecx, edi
je 0x49fe1f
mov edx, dword [ecx + 0xc]
jmp 0x49fe21
xor edx, edx
mov ecx, dword [esi + 0xa8]
imul ecx, edx
add ecx, eax
call fcn.004835f0
jmp case.default.0x49ea63
mov ecx, 0x56a4bc
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 2
call fcn.00404910
mov dword [eax + 4], 5
mov eax, dword [esi + 0xb0]
cmp eax, edi
jne 0x49fe62
xor ebx, ebx
jmp 0x49fe7e
mov ecx, dword [esi + 0xb8]
cmp ecx, edi
je 0x49fe71
mov ecx, dword [ecx + 0xc]
jmp 0x49fe73
xor ecx, ecx
mov ebx, dword [esi + 0xb4]
imul ebx, ecx
add ebx, eax
mov ecx, ebx
call fcn.004836b0
test al, al
jne case.default.0x49ea63
mov ecx, dword [esi + 0xa4]
cmp ecx, edi
jne 0x49fea6
xor esi, esi
push edi
mov ecx, esi
call fcn.00484580
jmp case.default.0x49ea63
mov eax, dword [esi + 0xac]
cmp eax, edi
je 0x49feb5
mov eax, dword [eax + 0xc]
jmp 0x49feb7
xor eax, eax
mov esi, dword [esi + 0xa8]
imul esi, eax
add esi, ecx
push edi
mov ecx, esi
call fcn.00484580
jmp case.default.0x49ea63
push edi
lea ecx, [esi + 0xb0]
call fcn.004832d0
mov ecx, eax
call fcn.00483630
push eax
lea ecx, [esi + 0x18]
call fcn.004830d0
test al, al
je case.default.0x49ea63
mov ecx, 0x56a4bc
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 2
call fcn.00404910
lea ecx, [esi + 0xa4]
push edi
mov dword [eax + 4], edi
call fcn.004832d0
mov ecx, eax
call fcn.004835f0
mov dword [esi + 4], 9
jmp case.default.0x49ea63
push 0
lea ecx, [esi + 0xa4]
call fcn.004832d0
cmp byte [eax + 0x54], 0
push 0
je 0x49ff58
lea ecx, [esi + 0xa4]
call fcn.004832d0
mov ecx, eax
call fcn.00488fa0
jmp case.default.0x49ea63
lea ecx, [esi + 0xb0]
call fcn.004832d0
mov edi, eax
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
mov byte [edi + 0xc], 0
call edx
mov edi, dword [edi + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, edi
call edx
mov ecx, 0x56a4bc
mov dword [esi + 4], 0xd
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 2
call fcn.00404910
mov dword [eax + 4], 0
xor edi, edi
mov edx, dword [esi + 0xa4]
cmp edx, edi
jne 0x49ffbb
xor eax, eax
jmp 0x49ffd7
mov eax, dword [esi + 0xac]
cmp eax, edi
je 0x49ffca
mov ecx, dword [eax + 0xc]
jmp 0x49ffcc
xor ecx, ecx
mov eax, dword [esi + 0xa8]
imul eax, ecx
add eax, edx
cmp byte [eax + 0x54], 0
jne 0x49fff8
push edi
lea ecx, [esi + 0xb0]
call fcn.004832d0
mov ecx, eax
call fcn.004836b0
test al, al
jne case.default.0x49ea63
mov edx, dword [esi + 0xa4]
cmp edx, edi
jne 0x4a000e
xor ecx, ecx
call fcn.00488fa0
jmp case.default.0x49ea63
mov eax, dword [esi + 0xac]
cmp eax, edi
je 0x4a001d
mov eax, dword [eax + 0xc]
jmp 0x4a001f
xor eax, eax
mov ecx, dword [esi + 0xa8]
imul ecx, eax
add ecx, edx
call fcn.00488fa0
jmp case.default.0x49ea63
push ebx
lea ecx, [esi + 0xa4]
call fcn.004832d0
mov ecx, eax
call fcn.00488fa0
push ebx
lea ecx, [esi + 0xa4]
call fcn.004832d0
cmp byte [eax + 0x54], 0
jne case.default.0x49ea63
mov ecx, 0x56a480
call fcn.004056e0
mov ecx, dword [0x5699dc]
push ebx
push ebx
add ecx, 0x18
call fcn.004832d0
mov ecx, eax
call fcn.00440e80
test al, al
jne 0x4a00a9
mov ecx, 0x56a480
call fcn.004056e0
mov ecx, dword [0x5699dc]
push ebx
call fcn.004832d0
cmp byte [eax + 0x31], 0
jne case.default.0x49ea63
cmp byte [eax + 0x11], 0
je case.default.0x49ea63
cmp dword [eax + 0x28], ebx
jne case.default.0x49ea63
mov ecx, dword [esi + 0xb0]
cmp ecx, ebx
jne 0x4a00b7
xor edi, edi
jmp 0x4a00cf
mov eax, dword [esi + 0xb8]
cmp eax, ebx
je 0x4a00c4
mov ebx, dword [eax + 0xc]
mov edi, dword [esi + 0xb4]
imul edi, ebx
add edi, ecx
mov eax, dword [edi]
mov edx, dword [eax + 0xc]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, edi
mov byte [edi + 0xc], 1
call edx
mov edi, dword [edi + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
lea ecx, [ebp - 0x30]
push ecx
mov ecx, edi
call edx
mov ecx, 0x56a4bc
call fcn.00416ad0
mov ecx, dword [0x5699f4]
push 2
call fcn.00404910
mov dword [eax + 4], 5
mov dword [esi + 4], 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00503edb
mov esp, ebp
pop ebp
ret