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

Disassembly:
push 0xffffffffffffffff
push 0x54efd4
mov eax, dword fs:[0]
push eax
sub esp, 0x1e4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5a9e98]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x44], ebp
mov edi, dword [esp + 0x208]
xor esi, esi
mov ecx, edi
mov dword [esp + 0x1c], esi
call fcn.004311f0
test eax, eax
jne 0x4cdcc6
mov ecx, edi
call fcn.004de280
test eax, eax
je 0x4cd910
push 1
push edi
push esi
mov ecx, ebp
call fcn.004cd430
push edi
mov ecx, ebp
call fcn.004cc350
push 1
push 2
push 0x20005
mov ecx, edi
call fcn.004dda30
neg eax
sbb eax, eax
and eax, 0xfffe1ffd
add eax, 0x30004
jmp 0x4cf48c
lea ebx, [edi + 0xc]
mov ecx, ebx
call fcn.00403c60
mov eax, dword [edi + 0x224]
mov edx, dword [ebx]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov ecx, 0x5adbf0
mov dword [esp + 0x30], esi
call fcn.0048ca30
push 1
push 1
lea ecx, [esp + 0x3c]
push ecx
push edi
mov ecx, ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x2c], esi
call fcn.004be7f0
mov edx, eax
and edx, 0xffff0000
cmp edx, 0x10000
jne 0x4cf48c
mov eax, dword [esp + 0x4c]
and eax, 0xfff
cmp eax, 0x16
mov dword [esp + 0x48], eax
jne 0x4cd9a6
push 1
push esi
lea eax, [esp + 0x24]
push eax
push edi
mov ecx, ebp
call fcn.004be7f0
mov ecx, eax
and ecx, 0xffff0000
cmp ecx, 0x10000
jne 0x4cf48c
lea edx, [esp + 0x14]
push edx
mov ecx, edi
call fcn.004b4db0
lea ecx, [esp + 0x18]
mov dword [esp + 0x200], 0
call fcn.00402020
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x208], 1
call fcn.004eb380
push eax
push ecx
mov edx, esp
mov dword [esp + 0x48], esp
push edx
mov ecx, edi
call fcn.004b4db0
call fcn.00412260
add esp, 0x10
mov ecx, ebx
call fcn.00403c60
mov eax, dword [ebx]
mov edx, dword [eax + 0x14]
mov esi, dword [edi + 0x1d8]
mov ecx, ebx
call edx
test esi, esi
mov ecx, edi
jne 0x4cda30
push 1
push 1
push 0x1431
call fcn.004dfa30
mov dword [esp + 0x30], 4
jmp 0x4ce361
call fcn.004af2d0
test eax, eax
jne 0x4cdf8c
mov ecx, edi
call fcn.004ae9e0
cmp eax, 0x20002
jne 0x4cdf8c
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call fcn.004b4e40
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
mov byte [esp + 0x204], 2
mov dword [esp + 0x38], 0xffffffff
call fcn.004b4db0
push 0x564740
mov ebx, 1
push eax
mov byte [esp + 0x208], 3
mov dword [esp + 0x24], ebx
call fcn.00404520
add esp, 8
test al, al
je 0x4cdac2
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.004b4db0
push 0x564830
push eax
mov ebx, 3
call fcn.00404520
add esp, 8
test al, al
mov byte [esp + 0x3f], 1
jne 0x4cdac7
mov byte [esp + 0x3f], 0
test bl, 2
je 0x4cdad8
lea ecx, [esp + 0x24]
and ebx, 0xfffffffd
call fcn.00401f50
test bl, 1
mov dword [esp + 0x200], 2
je 0x4cdaf1
lea ecx, [esp + 0x20]
call fcn.00401f50
cmp byte [esp + 0x3f], 0
je 0x4cdb2c
mov eax, dword [esp + 0x28]
push eax
call fcn.0042a710
add esp, 4
test eax, eax
je 0x4cdb13
mov dword [esp + 0x34], 0
jmp 0x4cdb2c
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0042a6e0
add esp, 4
test eax, eax
je 0x4cdb2c
mov dword [esp + 0x34], 3
mov ecx, edi
call fcn.004af460
mov ebx, eax
cmp ebx, 1
je 0x4cdb43
cmp ebx, 2
jne 0x4cdc6e
lea edx, [esp + 0x20]
push edx
mov ecx, edi
call fcn.004b4e40
lea ecx, [esp + 0x24]
call fcn.00402020
push 0x5c
lea ecx, [esp + 0x24]
mov byte [esp + 0x204], 5
call fcn.00402a20
test eax, eax
jl 0x4cdbd8
lea esi, [eax + 1]
push esi
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
call fcn.004057e0
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x204], 6
call fcn.004030b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x200], 5
call fcn.00401f50
push esi
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x28]
call fcn.00402fb0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x204], 7
call fcn.004030b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x200], 5
call fcn.00401f50
jmp 0x4cdbef
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x28]
call fcn.004030b0
lea ecx, [esp + 0x20]
call fcn.00401f70
cmp ebx, 1
lea ecx, [esp + 0x24]
jne 0x4cdbff
call fcn.0040c3e0
jmp 0x4cdc04
call fcn.0041ad10
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x24]
call fcn.00406a70
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call fcn.004b4e40
lea edx, [esp + 0x20]
push edx
push eax
call fcn.004317a0
add esp, 8
lea ecx, [esp + 0x1c]
mov bl, al
call fcn.00401f50
test bl, bl
je 0x4cdc54
mov eax, dword [esp + 0x20]
push eax
mov ecx, edi
call fcn.004be2c0
push 0
push 0
push 4
mov ecx, edi
call fcn.004dd820
lea ecx, [esp + 0x24]
call fcn.00401f50
lea ecx, [esp + 0x20]
mov byte [esp + 0x200], 2
call fcn.00401f50
cmp dword [esp + 0x34], 0xffffffff
je 0x4ce350
lea esi, [ebp + 0x38]
mov ecx, esi
mov dword [esp + 0x24], esi
call fcn.00403c60
mov ecx, edi
mov byte [esp + 0x200], 8
call fcn.004311f0
test eax, eax
je 0x4cdcd0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
mov byte [esp + 0x200], 2
call eax
lea ecx, [esp + 0x28]
call fcn.00401f50
lea ecx, [esp + 0x18]
call fcn.00401f50
lea ecx, [esp + 0x14]
call fcn.00401f50
mov eax, 0x30004
jmp 0x4cf48c
push edi
mov ecx, ebp
call fcn.004b1a60
mov esi, eax
test esi, esi
jne 0x4cdce0
mov esi, edi
mov eax, dword [esp + 0x2c]
cmp eax, 1
je 0x4cdd14
cmp eax, 2
jne 0x4cdd09
push 1
push 1
push 0x1434
mov ecx, edi
call fcn.004dfa30
xor ebx, ebx
mov dword [esp + 0x30], ebx
jmp 0x4cde07
mov ecx, esi
call fcn.004af010
test eax, eax
jne 0x4cdd32
push 1
push 1
push 0x1431
mov ecx, edi
call fcn.004dfa30
mov ebx, 4
mov dword [esp + 0x30], ebx
jmp 0x4cde07
mov ecx, esi
call fcn.004af010
cmp eax, 1
push 1
mov ecx, edi
push 1
jne 0x4cdd5c
push 0x1435
call fcn.004dfa30
mov ebx, 1
mov dword [esp + 0x30], ebx
jmp 0x4cde07
push 0x1432
call fcn.004dfa30
mov edx, dword [esp + 0x34]
push 0
push 1
lea ecx, [esp + 0x24]
push ecx
push 0
push edx
push ecx
mov dword [esp + 0x50], esp
mov ebx, esp
push 0x5c
push ecx
lea eax, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
mov dword [esp + 0x40], 0
call fcn.00402c20
push ebx
call fcn.0042d9c0
add esp, 0xc
push edi
mov ecx, ebp
call fcn.004bb8b0
cmp dword [esp + 0x1c], 0
mov ecx, esi
je 0x4cddd2
test eax, eax
je 0x4cdddf
mov ebx, 4
push 0
mov dword [esp + 0x34], ebx
call fcn.004af040
push 0
push esi
mov ecx, ebp
call fcn.004b03e0
jmp 0x4cde07
test eax, eax
push 4
je 0x4cddf9
mov ebx, 3
jmp 0x4cddfe
mov ebx, 1
push ebx
mov dword [esp + 0x34], ebx
call fcn.004af040
push ebx
push esi
mov ecx, ebp
call fcn.004b03e0
jmp 0x4cde07
mov ebx, 2
mov dword [esp + 0x34], ebx
call fcn.004af040
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
mov byte [esp + 0x200], 2
call eax
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4cdcab
test ebx, ebx
je 0x4cde6c
cmp ebx, 3
je 0x4cde6c
cmp ebx, 4
je 0x4cde6c
push 1
push 1
push 0x146e
mov ecx, edi
call fcn.004dfa30
lea ecx, [esp + 0x28]
call fcn.00401f50
lea ecx, [esp + 0x18]
call fcn.00401f50
lea ecx, [esp + 0x14]
call fcn.00401f50
mov eax, 0x20001
jmp 0x4cf48c
cmp dword [esp + 0x34], 3
jne 0x4ce350
lea ecx, [esp + 0x24]
call fcn.00402020
lea ecx, [esp + 0x2c]
push ecx
mov bl, 9
mov ecx, edi
mov byte [esp + 0x204], bl
call fcn.004b4e40
mov edx, dword [eax]
push edx
lea eax, [esp + 0x28]
push 0xe1bb
push eax
mov byte [esp + 0x20c], 0xa
call fcn.0041b330
add esp, 0xc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x200], bl
call fcn.00401f50
mov ecx, dword [esp + 0x24]
push 1
push 1
push ecx
mov ecx, edi
call fcn.004dfd30
lea edx, [esp + 0x2c]
push edx
mov ecx, edi
call fcn.004b4e40
mov eax, dword [eax]
push eax
mov byte [esp + 0x204], 0xb
call fcn.0042a840
add esp, 4
lea ecx, [esp + 0x2c]
mov esi, eax
mov byte [esp + 0x200], bl
call fcn.00401f50
test esi, esi
jne 0x4cdf7e
lea eax, [esp + 0x2c]
push eax
mov ecx, edi
call fcn.004b4e40
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x28]
push 0xe1b3
push edx
mov byte [esp + 0x20c], 0xc
call fcn.0041b330
add esp, 0xc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x200], bl
call fcn.00401f50
mov eax, dword [esp + 0x24]
push 1
push 2
push eax
mov ecx, edi
call fcn.004dfd30
lea ecx, [esp + 0x24]
call fcn.00401f50
lea ecx, [esp + 0x28]
call fcn.00401f50
lea ecx, [esp + 0x18]
call fcn.00401f50
lea ecx, [esp + 0x14]
call fcn.00401f50
mov eax, 0x30003
jmp 0x4cf48c
lea ecx, [esp + 0x24]
call fcn.00401f50
jmp 0x4ce350
mov ecx, edi
call fcn.004af2d0
test eax, eax
jne 0x4ce361
mov ecx, edi
call fcn.004ae9e0
cmp eax, 0x20003
jne 0x4ce361
mov ecx, edi
call fcn.004af460
cmp eax, 1
je 0x4ce116
cmp eax, 2
jne 0x4ce072
lea ecx, [esp + 0x14]
call fcn.0041ad10
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, edi
call fcn.004aee40
push eax
lea ecx, [esp + 0x6c]
call fcn.00412d60
push 1
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x40], esp
push edx
mov byte [esp + 0x20c], 0xd
call fcn.00402c20
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x70]
call fcn.00412e20
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
mov byte [esp + 0x204], 0xe
call fcn.004b4db0
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.004317a0
add esp, 8
lea ecx, [esp + 0x24]
mov bl, al
call fcn.00401f50
test bl, bl
je 0x4ce058
mov eax, dword [esp + 0x1c]
push eax
mov ecx, edi
call fcn.004be230
push 0
push 0
push 4
mov ecx, edi
call fcn.004dd820
lea ecx, [esp + 0x1c]
call fcn.00401f50
lea ecx, [esp + 0x64]
mov byte [esp + 0x200], 1
call fcn.00401f50
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.004b4db0
lea ecx, [esp + 0x184]
mov byte [esp + 0x200], 0xf
call fcn.004114a0
mov ebx, dword [esp + 0x34]
push 1
mov ecx, ebx
mov byte [esp + 0x204], 0x10
call fcn.004ec8c0
push 0
push 1
lea edx, [esp + 0x18c]
push edx
push edi
mov ecx, ebp
call fcn.004c5810
push 2
mov ecx, ebx
mov esi, eax
call fcn.004ec8c0
cmp esi, 0x30007
je 0x4ce33c
mov eax, esi
and eax, 0xffff0000
cmp eax, 0x10000
je 0x4ce124
lea ecx, [esp + 0x184]
mov byte [esp + 0x200], 0xf
call fcn.004115b0
lea ecx, [esp + 0x28]
call fcn.00401f50
lea ecx, [esp + 0x18]
call fcn.00401f50
lea ecx, [esp + 0x14]
call fcn.00401f50
mov eax, esi
jmp 0x4cf48c
lea ecx, [esp + 0x14]
call fcn.0040c3e0
jmp 0x4cdfcf
lea esi, [ebp + 0x38]
mov ecx, esi
mov dword [esp + 0x1c], esi
call fcn.00403c60
mov ecx, edi
mov byte [esp + 0x200], 0x11
call fcn.004311f0
test eax, eax
je 0x4ce16f
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
mov byte [esp + 0x200], 0x10
call eax
lea ecx, [esp + 0x184]
mov byte [esp + 0x200], 0xf
call fcn.004115b0
jmp 0x4cdcab
push edi
mov ecx, ebp
call fcn.004b1a60
mov esi, eax
test esi, esi
jne 0x4ce17f
mov esi, edi
mov eax, dword [esp + 0x2c]
cmp eax, 1
je 0x4ce1b3
cmp eax, 2
jne 0x4ce1a8
push 1
push 1
push 0x1434
mov ecx, edi
call fcn.004dfa30
xor ebx, ebx
mov dword [esp + 0x30], ebx
jmp 0x4ce2a9
mov ecx, esi
call fcn.004af010
test eax, eax
jne 0x4ce1d1
push 1
push 1
push 0x1431
mov ecx, edi
call fcn.004dfa30
mov ebx, 4
mov dword [esp + 0x30], ebx
jmp 0x4ce2a9
mov ecx, esi
call fcn.004af010
cmp eax, 1
push 1
mov ecx, edi
push 1
jne 0x4ce1fb
push 0x1435
call fcn.004dfa30
mov ebx, 1
mov dword [esp + 0x30], ebx
jmp 0x4ce2a9
push 0x1434
call fcn.004dfa30
mov edx, dword [esp + 0x19c]
push 0
push 1
lea ecx, [esp + 0x34]
push ecx
push 1
push edx
push ecx
mov dword [esp + 0x50], esp
mov ebx, esp
push 0x2f
push ecx
lea eax, [esp + 0x48]
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
mov dword [esp + 0x50], 0
call fcn.00402c20
push ebx
call fcn.0042d9c0
add esp, 0xc
push edi
mov ecx, ebp
call fcn.004bb8b0
cmp dword [esp + 0x2c], 0
mov ecx, esi
je 0x4ce274
test eax, eax
je 0x4ce281
mov ebx, 4
push 0
mov dword [esp + 0x34], ebx
call fcn.004af040
push 0
push esi
mov ecx, ebp
call fcn.004b03e0
jmp 0x4ce2a9
test eax, eax
push 4
je 0x4ce29b
mov ebx, 3
jmp 0x4ce2a0
mov ebx, 1
push ebx
mov dword [esp + 0x34], ebx
call fcn.004af040
push ebx
push esi
mov ecx, ebp
call fcn.004b03e0
jmp 0x4ce2a9
mov ebx, 2
mov dword [esp + 0x34], ebx
call fcn.004af040
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
mov byte [esp + 0x200], 0x10
call eax
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4ce156
test ebx, ebx
je 0x4ce302
cmp ebx, 3
je 0x4ce302
cmp ebx, 4
je 0x4ce302
push 1
push 1
push 0x146e
mov ecx, edi
call fcn.004dfa30
lea ecx, [esp + 0x184]
mov byte [esp + 0x200], 0xf
call fcn.004115b0
jmp 0x4cde47
cmp dword [esp + 0x19c], 3
jne 0x4ce33c
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push ecx
mov ecx, edi
call fcn.004b4db0
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
mov esi, eax
mov ecx, esi
and ecx, 0xffff0000
cmp ecx, 0x10000
jne 0x4ce0e0
lea ecx, [esp + 0x184]
mov byte [esp + 0x200], 0xf
call fcn.004115b0
lea ecx, [esp + 0x28]
mov byte [esp + 0x200], 1
call fcn.00401f50
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4cdcb4
lea esi, [edi + 0xc]
mov ecx, esi
call fcn.00403c60
mov eax, dword [edi + 0x210]
and eax, 0xfffffffe
mov dword [edi + 0x210], eax
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
push edi
mov ecx, ebp
call fcn.004bbce0
mov esi, eax
mov ecx, esi
and ecx, 0xffff0000
cmp ecx, 0x10000
jne 0x4ce0fd
push edi
mov ecx, ebp
call fcn.004bf320
mov esi, eax
mov edx, esi
and edx, 0xffff0000
cmp edx, 0x10000
jne 0x4ce0fd
lea ecx, [esp + 0x104]
call fcn.004118d0
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eaa0
cmp dword [esp + 0x48], 0x16
mov byte [esp + 0x200], 0x13
jne 0x4ce454
push 1
push 0
lea eax, [esp + 0x88]
push eax
push edi
mov ecx, ebp
call fcn.004c3d30
mov esi, eax
mov ecx, esi
and ecx, 0xffff0000
cmp ecx, 0x10000
je 0x4ce4f1
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
jmp 0x4ce0fd
push ecx
mov edx, esp
mov dword [esp + 0x3c], esp
push edx
mov ecx, edi
call fcn.004b4e40
lea ecx, [esp + 0x108]
call fcn.00411cd0
test eax, eax
jne 0x4ce4f1
lea eax, [esp + 0x2c]
push eax
mov ecx, edi
call fcn.004b4e40
mov ecx, dword [eax]
push ecx
lea edx, [esp + 0x4c]
push 0x14d0
push edx
mov byte [esp + 0x20c], 0x14
call fcn.0049f920
add esp, 0xc
mov eax, dword [eax]
push 1
push 2
push eax
mov ecx, edi
mov byte [esp + 0x20c], 0x15
call fcn.004dfd30
lea ecx, [esp + 0x48]
call fcn.00401f50
lea ecx, [esp + 0x2c]
call fcn.00401f50
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
jmp 0x4cdf62
push 1
push 1
lea eax, [esp + 0x88]
push eax
push edi
mov ecx, ebp
call fcn.004c3d30
mov esi, eax
mov ecx, esi
and ecx, 0xffff0000
cmp ecx, 0x10000
jne 0x4ce427
mov ecx, edi
call fcn.004aee40
mov esi, eax
test esi, esi
jne 0x4ce541
push ecx
mov edx, esp
mov dword [esp + 0x3c], esp
push edx
mov ecx, edi
call fcn.004b4db0
call fcn.004116c0
add esp, 4
mov esi, eax
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x24]
call fcn.00402c20
lea ecx, [esp + 0x20]
mov byte [esp + 0x200], 0x16
call fcn.0040c3e0
cmp esi, 3
mov esi, dword [esp + 0x20]
jne 0x4ce5e2
cmp dword [esi - 0xc], 0
jl 0x4ce5e2
push 0x5695d4
push esi
call fcn.005202e9
add esp, 8
test eax, eax
je 0x4ce5e2
sub eax, esi
js 0x4ce5e2
lea ecx, [esp + 0x80]
xor ebx, ebx
call fcn.00410d40
test eax, eax
jle 0x4ce5e2
lea ebx, [ebx]
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4ce5e2
push ebx
lea ecx, [esp + 0x84]
call fcn.00410d20
lea esi, [eax + 4]
push 0x28
push 0
mov ecx, esi
call fcn.00411a60
push 0x29
mov ecx, esi
call fcn.00404b00
lea ecx, [esp + 0x80]
add ebx, 1
call fcn.00410d40
cmp ebx, eax
jl 0x4ce5a0
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4cea76
lea ecx, [esp + 0x50]
mov dword [esp + 0x1c], 0xffffffff
call fcn.004acb90
mov ecx, edi
mov byte [esp + 0x200], 0x17
call fcn.004ae9e0
cmp eax, 0x20002
je 0x4ce62a
mov ecx, edi
call fcn.004ae9e0
cmp eax, 0x20014
jne 0x4cea5e
xor ebx, ebx
lea ecx, [esp + 0x80]
mov dword [esp + 0x2c], ebx
call fcn.00410d40
test eax, eax
jle 0x4cea5e
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4cea5e
push ebx
lea ecx, [esp + 0x84]
call fcn.00410d20
lea ecx, [esp + 0x6c]
mov esi, eax
call fcn.004acbd0
lea ecx, [esp + 0x6c]
push ecx
push esi
lea ecx, [esp + 0x88]
mov byte [esp + 0x208], 0x18
call fcn.00410f80
mov edx, dword [esp + 0x4c]
push edx
push esi
mov ecx, edi
call fcn.004dedc0
test eax, eax
jne 0x4ce6ac
lea ecx, [esp + 0x6c]
mov byte [esp + 0x200], 0x17
call fcn.004acc10
jmp 0x4cea43
cmp dword [esp + 0x74], 0
jle 0x4cea2e
mov ecx, edi
call fcn.004af490
sub eax, 1
je 0x4ce7a1
sub eax, 1
je 0x4ce707
xor esi, esi
cmp dword [esp + 0x74], esi
jle 0x4cea2e
jmp 0x4ce6e0
push esi
lea ecx, [esp + 0x70]
call fcn.004acbf0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x84]
call fcn.00410c60
add esi, 1
cmp esi, dword [esp + 0x74]
jl 0x4ce6e0
jmp 0x4cea2e
xor ebx, ebx
cmp dword [esp + 0x74], ebx
jle 0x4cea2e
push ebx
lea ecx, [esp + 0x70]
call fcn.004acbf0
mov ebp, dword [eax]
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x4c]
push eax
push ebp
push 0
push edi
call fcn.004c9440
mov esi, eax
sar esi, 0x10
cmp esi, 3
mov dword [esp + 0x34], eax
je 0x4ceaac
push ebp
lea ecx, [esp + 0x84]
call fcn.00410c60
push 1
push ebx
lea ecx, [esp + 0x74]
call fcn.00413f80
sub ebx, 1
cmp esi, 1
jne 0x4ce78f
mov ecx, dword [esp + 0x58]
add ecx, 0xffffffff
push ecx
lea ecx, [esp + 0x54]
call fcn.004acbf0
mov eax, dword [eax]
push 3
mov ecx, eax
call fcn.004af040
add ebx, 1
cmp ebx, dword [esp + 0x74]
jl 0x4ce713
jmp 0x4cea2e
cmp dword [esp + 0x74], 0
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x34], 0
jle 0x4cea2e
mov edx, dword [esp + 0x34]
push edx
lea ecx, [esp + 0x70]
call fcn.004acbf0
cmp dword [esp + 0x24], 0x4000
mov ebx, dword [eax]
jge 0x4cea19
mov ebp, dword [esp + 0x24]
mov edi, edi
mov eax, dword [ebx + 4]
add ebp, 1
push ebp
push eax
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x30], ebp
call fcn.004c1dc0
add esp, 0xc
mov eax, dword [ebx + 4]
xor ecx, ecx
test eax, eax
setne cl
mov byte [esp + 0x200], 0x19
test ecx, ecx
je 0x4ceb33
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.005204eb
add esp, 8
test eax, eax
sete al
test al, al
mov eax, dword [esp + 0x28]
je 0x4ce848
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x18
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4ce88c
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x68], esp
mov esi, esp
push eax
call fcn.00402b80
add eax, 0x10
add esp, 4
lea ecx, [esp + 0x84]
mov dword [esi], eax
call fcn.00411070
test eax, eax
mov eax, dword [esp + 0x28]
je 0x4ce8a9
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ce898
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp ebp, 0x4000
jl 0x4ce7e0
jmp 0x4cea19
push 1
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x6c], esp
mov esi, esp
push eax
call fcn.00402b80
add eax, 0x10
add esp, 4
lea ecx, [esp + 0x10c]
mov dword [esi], eax
call fcn.00411230
test eax, eax
je 0x4ce8de
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
push 1
call eax
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x54]
push ebx
push 0
push edi
call fcn.004c9440
mov ebp, eax
mov esi, ebp
sar esi, 0x10
cmp esi, 3
je 0x4ceb3d
push ebx
lea ecx, [esp + 0x84]
call fcn.00410c60
mov ebx, dword [esp + 0x34]
push 1
push ebx
lea ecx, [esp + 0x74]
call fcn.00413f80
mov ecx, dword [esp + 0x58]
sub ebx, 1
cmp esi, 1
mov dword [esp + 0x34], ebx
jne 0x4ce9f1
lea eax, [ecx - 1]
test eax, eax
jl 0x4cebd4
cmp eax, ecx
jge 0x4cebd4
mov edx, dword [esp + 0x54]
mov esi, dword [edx + eax*4]
lea eax, [esp + 0x38]
push eax
mov ecx, esi
call fcn.004b4e40
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
push ecx
push eax
lea edx, [esp + 0x50]
push edx
mov byte [esp + 0x20c], 0x1a
call fcn.004c1dc0
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x1b
call fcn.004030b0
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x1a
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ce9bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x19
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ce9e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, esi
call fcn.004be2c0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x18
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cea19
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 1
cmp eax, dword [esp + 0x74]
mov dword [esp + 0x34], eax
jl 0x4ce7bc
lea ecx, [esp + 0x6c]
mov byte [esp + 0x200], 0x17
call fcn.004acc10
mov ebx, dword [esp + 0x2c]
add ebx, 1
lea ecx, [esp + 0x80]
mov dword [esp + 0x2c], ebx
call fcn.00410d40
cmp ebx, eax
jl 0x4ce644
mov ecx, edi
call fcn.004311f0
test eax, eax
je 0x4cebd9
lea ecx, [esp + 0x50]
call fcn.004acbb0
lea ecx, [esp + 0x20]
call fcn.00401f50
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
jmp 0x4cdcb4
mov edi, dword [esp + 0x58]
xor esi, esi
test edi, edi
jle 0x4cead5
push esi
lea ecx, [esp + 0x54]
call fcn.004acbf0
mov ecx, dword [eax]
test ecx, ecx
je 0x4ceace
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add esi, 1
cmp esi, edi
jl 0x4ceab6
lea ecx, [esp + 0x6c]
call fcn.004acc10
lea ecx, [esp + 0x50]
call fcn.004acbb0
lea ecx, [esp + 0x20]
call fcn.00401f50
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
lea ecx, [esp + 0x18]
call fcn.00401f50
lea ecx, [esp + 0x14]
call fcn.00401f50
mov eax, dword [esp + 0x34]
jmp 0x4cf48c
push 0x80004005
call fcn.00401c00
mov edi, dword [esp + 0x58]
xor esi, esi
test edi, edi
jle 0x4ceb6f
jmp 0x4ceb50
push esi
lea ecx, [esp + 0x54]
call fcn.004acbf0
mov ecx, dword [eax]
test ecx, ecx
je 0x4ceb68
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add esi, 1
cmp esi, edi
jl 0x4ceb50
lea ecx, [esp + 0x28]
call fcn.00401f50
lea ecx, [esp + 0x6c]
call fcn.004acc10
lea ecx, [esp + 0x50]
call fcn.004acbb0
lea ecx, [esp + 0x20]
call fcn.00401f50
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
lea ecx, [esp + 0x18]
call fcn.00401f50
lea ecx, [esp + 0x14]
call fcn.00401f50
mov eax, ebp
jmp 0x4cf48c
call fcn.004f5dbd
xor esi, esi
lea ecx, [esp + 0x104]
mov dword [esp + 0x2c], esi
call fcn.00410d40
test eax, eax
jle 0x4cecd2
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4cecd2
push esi
lea ecx, [esp + 0x108]
call fcn.00410d20
mov ecx, dword [esp + 0x4c]
push ecx
mov ebx, eax
push ebx
mov ecx, edi
call fcn.004dedc0
test eax, eax
je 0x4cecb7
push 0
push ecx
lea ebp, [ebx + 4]
mov ecx, esp
mov dword [esp + 0x6c], esp
push ebp
call fcn.00402c20
lea ecx, [esp + 0x88]
call fcn.00411230
mov esi, eax
test esi, esi
jne 0x4cec67
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x6c], esp
push ebp
call fcn.00402c20
lea ecx, [esp + 0x88]
call fcn.00411230
mov esi, eax
mov edx, dword [esp + 0x30]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x4c]
push edx
push esi
push ebx
push edi
call fcn.004c9440
mov ebx, eax
and eax, 0xffff0000
cmp eax, 0x30000
je 0x4ceea6
test esi, esi
je 0x4ceca8
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4cecd2
mov esi, dword [esp + 0x2c]
add esi, 1
lea ecx, [esp + 0x104]
mov dword [esp + 0x2c], esi
call fcn.00410d40
cmp esi, eax
jl 0x4cebf3
lea ecx, [esp + 0x80]
xor ebp, ebp
call fcn.00410d40
test eax, eax
jle 0x4ced7b
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4ced7b
push ebp
lea ecx, [esp + 0x84]
call fcn.00410d20
mov ecx, dword [esp + 0x4c]
push ecx
mov esi, eax
push esi
mov ecx, edi
call fcn.004dedc0
test eax, eax
je 0x4ced64
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4cedec
mov edx, dword [esp + 0x30]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x4c]
push edx
push esi
push 0
push edi
call fcn.004c9440
mov ebx, eax
and eax, 0xffff0000
cmp eax, 0x30000
je 0x4cef2e
mov ecx, edi
call fcn.004311f0
test eax, eax
jne 0x4ced7b
lea ecx, [esp + 0x80]
add ebp, 1
call fcn.00410d40
cmp ebp, eax
jl 0x4cece8
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x58]
lea ebx, [esi + 0x98]
mov ecx, ebx
mov dword [esp + 0x4c], ebx
call fcn.00403c60
mov ecx, edi
mov byte [esp + 0x200], 0x1c
call fcn.004311f0
test eax, eax
je 0x4cf016
xor esi, esi
test ebp, ebp
jle 0x4ceddb
test esi, esi
jl 0x4cebd4
cmp esi, ebp
jge 0x4cebd4
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + esi*4]
test ecx, ecx
je 0x4cedd4
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add esi, 1
cmp esi, ebp
jl 0x4cedb1
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov byte [esp + 0x200], 0x17
mov ecx, ebx
call eax
lea ecx, [esp + 0x50]
call fcn.004acbb0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cee1d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x200], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cee6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x200], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cdcc6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x30004
jmp 0x4cf48c
mov edi, dword [esp + 0x58]
xor esi, esi
test edi, edi
jle 0x4ceedb
mov ebp, dword [esp + 0x54]
test esi, esi
jl 0x4cebd4
cmp esi, edi
jge 0x4cebd4
mov ecx, dword [ebp + esi*4]
test ecx, ecx
je 0x4ceed4
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add esi, 1
cmp esi, edi
jl 0x4ceeb4
lea ecx, [esp + 0x50]
call fcn.004acbb0
lea ecx, [esp + 0x20]
call fcn.00401f50
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
lea ecx, [esp + 0x18]
call fcn.00401f50
lea ecx, [esp + 0x14]
call fcn.00401f50
mov eax, ebx
jmp 0x4cf48c
mov edi, dword [esp + 0x58]
xor esi, esi
test edi, edi
jle 0x4cef63
mov ebp, dword [esp + 0x54]
test esi, esi
jl 0x4cebd4
cmp esi, edi
jge 0x4cebd4
mov ecx, dword [ebp + esi*4]
test ecx, ecx
je 0x4cef5c
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add esi, 1
cmp esi, edi
jl 0x4cef3c
lea ecx, [esp + 0x50]
call fcn.004acbb0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cef94
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cefe4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x200], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf00f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
jmp 0x4cf48c
lea ecx, [esp + 0x1e4]
push ecx
mov ecx, edi
call fcn.004b1550
test ebp, ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], 0
jle 0x4cf25e
lea esp, [esp]
mov eax, dword [esp + 0x40]
test eax, eax
jl 0x4cebd4
cmp eax, dword [esp + 0x58]
jge 0x4cebd4
mov edx, dword [esp + 0x54]
mov esi, dword [edx + eax*4]
mov eax, dword [esp + 0x44]
mov ebp, dword [eax + 0x260]
lea ebx, [esi + 0xc]
mov ecx, ebx
add ebp, 1
call fcn.00403c60
mov dword [esi + 0x318], ebp
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x44]
add ecx, 0x244
cmp ebp, dword [ecx + 0x1c]
jbe 0x4cf095
mov dword [ecx + 0x1c], ebp
push ebp
call fcn.00404a90
lea ebx, [edi + 0xc]
mov ecx, ebx
mov dword [eax], esi
call fcn.00403c60
mov ecx, dword [edi + 0x318]
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov dword [esp + 0x38], ecx
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, esi
call fcn.004de1f0
push 0
push 0x10001
mov ecx, esi
call fcn.004dd950
push ebp
mov ecx, edi
call fcn.004de430
lea ecx, [esp + 0x184]
call fcn.00403d30
lea edx, [esp + 0x184]
push edx
mov ecx, esi
call fcn.004ae100
mov ecx, esi
call fcn.004ad800
lea eax, [esp + 0x184]
push eax
mov ecx, edi
call fcn.004b1b00
sub esp, 0x14
lea edx, [esp + 0x1f8]
mov ecx, esp
mov dword [esp + 0x78], esp
push edx
call fcn.0046d530
mov ecx, esi
call fcn.004af070
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x3e8]
push eax
push ecx
mov ecx, esi
call fcn.004b1470
mov ecx, 0x5adbf0
mov dword [esp + 0x1c], esi
call fcn.0048c1e0
test al, 1
je 0x4cf241
call fcn.004fc960
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4ceb33
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
mov byte [esp + 0x204], 0x1d
call fcn.004b4e40
mov eax, dword [eax]
push eax
lea edx, [esp + 0x4c]
push edx
mov byte [esp + 0x208], 0x1e
call fcn.0042ddc0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x38]
push 0x156b
push ecx
mov byte [esp + 0x214], 0x1f
call fcn.0041b330
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
add esp, 0x14
mov byte [esp + 0x200], 0x1e
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cf1e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf20d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x2c]
push 1
push 1
push esi
mov ecx, edi
call fcn.004dfd30
lea eax, [esi - 0x10]
mov byte [esp + 0x200], 0x1c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf241
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 1
cmp eax, dword [esp + 0x58]
mov dword [esp + 0x40], eax
jl 0x4cf040
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov ecx, edi
call fcn.004de280
test eax, eax
je 0x4cf280
mov ecx, dword [esp + 0x1c]
push 0
push 0
mov dword [edi + 0x3e4], ecx
push 8
mov ecx, edi
call fcn.004dd820
push 1
push edi
push 0
mov ecx, esi
call fcn.004cd430
push edi
mov ecx, esi
call fcn.004cc350
mov ecx, edi
call fcn.004de280
test eax, eax
jne 0x4cf3b2
lea esi, [edi + 0xc]
mov ecx, esi
call fcn.00403c60
xor ebp, ebp
mov dword [edi + 0x268], ebp
mov dword [edi + 0x26c], ebp
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
mov ecx, esi
call fcn.00403c60
mov dword [edi + 0x260], ebp
mov dword [edi + 0x264], ebp
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
push ebp
push ebp
push 2
mov ecx, edi
call fcn.004dd820
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
mov byte [esp + 0x200], 0x17
call eax
lea ecx, [esp + 0x50]
call fcn.004acbb0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf32d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf37d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x200], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf3a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x10001
jmp 0x4cf48c
push 1
push 2
push 0x20005
mov ecx, edi
call fcn.004dda30
mov edx, dword [ebx]
test eax, eax
mov eax, dword [edx + 0x14]
mov byte [esp + 0x200], 0x17
mov ecx, ebx
je 0x4cedea
call eax
lea ecx, [esp + 0x50]
call fcn.004acbb0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf40c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x200], 0x12
call fcn.0045eac0
lea ecx, [esp + 0x104]
mov byte [esp + 0x200], 1
call fcn.00411950
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x200], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf45c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x200], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cf487
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x12001
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1f0
ret 4