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

Disassembly:
mov ecx, dword [0x6b21fc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x194]
cmp eax, dword [ecx + 8]
jbe 0x500377
sub esp, 0x214
lea edi, [esp + 0x21c]
mov ecx, 0x40c
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x218]
lea esi, [edx + 8]
mov ebx, dword [edx]
mov ebp, dword [edx + 4]
mov dword [esp + 0x21c], ebx
mov dword [esp + 0x220], ebp
movzx ebx, byte [edx + 0x102c]
mov byte [esp + 0x11f4], bl
lea edi, [esp + 0x11f8]
call fcn.00468eee
movzx ebx, byte [edx + 0x18]
test bl, bl
je 0x4fedcb
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov eax, dword [edx + 0x1030]
mov ecx, dword [edx + 0x1034]
mov ebx, dword [edx + 0x1038]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00409c90
mov eax, dword [esp + 0xc]
lea ecx, [0x52d3e0]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], eax
lea edi, [esp + 0x194]
xor eax, eax
call fcn.00468aaa
lea ecx, [0x500560]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x19c], 0x2c
lea ecx, [0x552277]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x1a4], 1
mov dword [esp + 0x1a8], 1
lea edx, [esp + 0x154]
mov dword [esp + 0x1a0], edx
mov edx, dword [0x68b9c4]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea edx, [esp + 0x194]
mov dword [esp + 0xc], edx
call fcn.004b1180
mov edx, dword [esp + 0x218]
mov dword [esp], edx
call fcn.004f06f0
mov eax, dword [esp + 0x218]
mov ecx, dword [eax + 0x1024]
test ecx, ecx
je 0x4fede8
mov edx, dword [ecx]
jmp 0x4fedea
xor edx, edx
test edx, edx
jl 0x4ff1da
mov dword [esp + 0x138], ecx
lea edi, [esp + 0x1e4]
xor eax, eax
call fcn.00468aa4
lea ecx, [0x538380]
mov dword [esp], ecx
mov edx, dword [esp + 0x138]
mov dword [esp + 4], edx
lea edx, [esp + 0x1e4]
mov dword [esp + 8], edx
call fcn.0040dfe0
xor eax, eax
lea ecx, [0x6b20c0]
xor edx, edx
jmp 0x4fee68
mov dword [esp + 0x120], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov byte [eax + ecx - 1], bl
lea ebx, [esp + 0x1e4]
mov dword [esp], ebx
call fcn.0040e220
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x1e4]
test ebx, ebx
je 0x4feebe
mov ebx, dword [esp + 0x1e8]
inc eax
movzx ebx, byte [ebx]
cmp edx, eax
jae 0x4fee37
mov byte [esp + 0x2f], bl
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x52abc0]
mov dword [esp + 0x10], eax
call fcn.0044f350
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x2f]
jmp 0x4fee37
mov dword [esp + 0x90], edx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x74], eax
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00409c90
mov eax, dword [esp + 0xc]
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
lea ecx, [0x500510]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x174], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x178], edx
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x170], ebx
lea ebp, [0x525ae0]
mov dword [esp], ebp
mov dword [esp + 4], eax
lea eax, [esp + 0x16c]
mov dword [esp + 8], eax
call fcn.00470910
mov eax, dword [esp + 0x218]
movzx ecx, byte [eax + 0x18]
test cl, cl
je 0x4ff04b
mov dword [esp + 0x14c], 0
mov dword [esp + 0x150], 0
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 8], edx
call fcn.00409c90
mov eax, dword [esp + 0xc]
lea ecx, [0x525ae0]
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], eax
lea edi, [esp + 0x194]
xor eax, eax
call fcn.00468aaa
lea ecx, [0x500490]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x19c], 0x20
lea ecx, [0x54eee6]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x1a4], 1
mov dword [esp + 0x1a8], 1
lea ecx, [esp + 0x14c]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [0x68b9c4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x194]
mov dword [esp + 0xc], ecx
call fcn.004b1180
mov eax, dword [esp + 0x218]
mov edx, dword [eax + 0x1030]
mov dword [esp + 0x130], edx
mov ebx, dword [eax + 0x1034]
mov dword [esp + 0x90], ebx
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x134]
xor ecx, ecx
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x64], ecx
lea ecx, [0x6b20c0]
mov dword [esp + 0x118], ecx
xor ecx, ecx
jmp 0x4ff0b3
inc ecx
mov eax, dword [esp + 0x134]
mov eax, dword [esp + 0x218]
mov dword [esp + 0x64], edx
mov dword [esp + 0x118], esi
mov edx, dword [esp + 0x130]
mov esi, dword [esp + 0x134]
cmp ecx, ebx
jge 0x4ff186
movzx eax, byte [ecx + edx]
mov byte [esp + 0xa4], al
xor eax, eax
mov dword [esp + 0x4c], eax
movzx eax, byte [esp + 0xa4]
jmp 0x500353
mov ebx, dword [esp + 0x90]
jmp 0x4ff0e7
mov edx, 0xffffffff
test edx, edx
jl 0x4ff176
mov edx, dword [esp + 0x64]
cmp edx, 2
jg 0x50036b
inc edx
cmp edi, edx
jae 0x4ff166
mov dword [esp + 0x88], ecx
mov byte [esp + 0x2d], al
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x52abc0]
mov dword [esp + 0x10], eax
call fcn.0044f350
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x134]
mov dword [esp + 0x118], eax
movzx eax, byte [esp + 0x2d]
mov esi, dword [esp + 0x118]
mov byte [edx + esi - 1], al
jmp 0x4ff08b
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x118]
jmp 0x4ff08b
mov edx, dword [esp + 0x64]
cmp edx, ebp
jge 0x4ff19c
mov ebx, dword [esp + 0x118]
xor ecx, ecx
jmp 0x500261
mov ecx, dword [esp + 0x118]
cmp edx, ebp
jge 0x4ff1ae
xor ebx, ebx
jmp 0x500179
mov dword [eax + 0x1034], edx
mov dword [eax + 0x1038], edi
mov edx, dword [0x6b2320]
test edx, edx
je 0x4ff1d4
call fcn.00468870
mov dword [edi], ecx
mov edx, dword [eax + 0x1030]
mov dword [edi + 4], edx
mov dword [eax + 0x1030], ecx
movzx edx, byte [eax + 0x18]
test dl, dl
je 0x4ff2bd
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov ecx, dword [eax + 0x1030]
mov edx, dword [eax + 0x1034]
mov ebx, dword [eax + 0x1038]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00409c90
mov eax, dword [esp + 0xc]
lea ecx, [0x52d3e0]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
lea edi, [esp + 0x194]
xor eax, eax
call fcn.00468aaa
lea ecx, [0x500410]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x19c], 0x2c
lea ecx, [0x552277]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x1a4], 1
mov dword [esp + 0x1a8], 1
lea ecx, [esp + 0x144]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [0x68b9c4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x194]
mov dword [esp + 0xc], ecx
call fcn.004b1180
mov eax, dword [esp + 0x218]
mov edx, dword [eax + 0x1034]
test edx, edx
je 0x4ff2d7
mov edx, dword [eax + 0x1030]
movzx edx, byte [edx]
mov byte [esp + 0x11f5], dl
cmp dword [eax + 0x1034], 1
jle 0x4ff2f1
mov edx, dword [eax + 0x1030]
movzx edx, byte [edx + 1]
mov byte [esp + 0x11f6], dl
cmp dword [eax + 0x1034], 2
jle 0x4ff30b
mov edx, dword [eax + 0x1030]
movzx edx, byte [edx + 2]
mov byte [esp + 0x11f7], dl
cmp dword [eax + 0x1034], 3
jg 0x4ff320
xor ecx, ecx
xor edx, edx
lea ebx, [esp + 0x2b]
xor ebp, ebp
jmp 0x4ff386
lea eax, [0x555397]
mov dword [esp], eax
mov dword [esp + 4], 0x42
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.004a1ec0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x124c], eax
mov dword [esp + 0x1250], ecx
add esp, 0x214
ret
xchg esi, ebx
mov byte [esp + eax + 0xa24], bl
xchg esi, ebx
lea ecx, [eax + 1]
mov eax, dword [esp + 0x218]
mov esi, edx
mov edx, ebx
mov ebx, esi
cmp ecx, 0x3e8
jge 0x4ffa45
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], edx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x70], ecx
lea edi, [esp + 0x1c8]
xor eax, eax
call fcn.00468aa9
lea edi, [esp + 0xe8]
call fcn.00468aa5
lea ecx, [esp + 0xe8]
mov dword [esp + 0x1d4], ecx
call fcn.00453d20
mov ecx, dword [esp]
mov dword [esp + 0x1d0], ecx
mov ecx, dword [esp + 0x218]
mov edx, dword [ecx + 0x74]
movzx ebx, byte [esp + 0x11f5]
mov dword [esp], edx
mov byte [esp + 4], bl
call fcn.0050cd80
movzx ecx, byte [esp + 8]
movzx edx, byte [esp + 9]
movzx ebx, byte [esp + 0xa]
mov byte [esp + 0x41], cl
mov byte [esp + 0x42], dl
mov byte [esp + 0x43], bl
lea ecx, [0x538380]
mov dword [esp], ecx
lea edx, [esp + 0x1c8]
mov dword [esp + 4], edx
lea ebx, [esp + 0x41]
mov dword [esp + 8], ebx
call fcn.0040d770
mov ecx, dword [esp + 0xc]
mov byte [ecx], 0
mov ecx, dword [esp + 0x218]
mov edx, dword [ecx + 0x74]
movzx ebx, byte [esp + 0x11f6]
mov dword [esp], edx
mov byte [esp + 4], bl
call fcn.0050cd80
movzx ecx, byte [esp + 8]
movzx edx, byte [esp + 9]
movzx ebx, byte [esp + 0xa]
mov byte [esp + 0x41], cl
mov byte [esp + 0x42], dl
mov byte [esp + 0x43], bl
lea ecx, [0x538380]
mov dword [esp], ecx
lea edx, [esp + 0x1c8]
mov dword [esp + 4], edx
lea ebx, [esp + 0x41]
mov dword [esp + 8], ebx
call fcn.0040d770
mov ecx, dword [esp + 0xc]
mov byte [ecx], 1
mov ecx, dword [esp + 0x218]
mov edx, dword [ecx + 0x74]
movzx ebx, byte [esp + 0x11f7]
mov dword [esp], edx
mov byte [esp + 4], bl
call fcn.0050cd80
movzx ecx, byte [esp + 8]
movzx edx, byte [esp + 9]
movzx ebx, byte [esp + 0xa]
mov byte [esp + 0x41], cl
mov byte [esp + 0x42], dl
mov byte [esp + 0x43], bl
lea ecx, [0x538380]
mov dword [esp], ecx
lea edx, [esp + 0x1c8]
mov dword [esp + 4], edx
lea ebx, [esp + 0x41]
mov dword [esp + 8], ebx
call fcn.0040d770
mov ecx, dword [esp + 0xc]
mov byte [ecx], 2
lea edi, [esp + 0x1ac]
xor eax, eax
call fcn.00468aa9
lea edi, [esp + 0xcc]
call fcn.00468aa9
lea ecx, [esp + 0xcc]
mov dword [esp + 0x1b8], ecx
call fcn.00453d20
mov ecx, dword [esp]
mov dword [esp + 0x1b4], ecx
movzx ecx, byte [esp + 0x11f5]
mov byte [esp + 0x34], cl
lea edx, [0x52bea0]
mov dword [esp], edx
lea ebx, [esp + 0x1ac]
mov dword [esp + 4], ebx
lea ebp, [0x5d34ec]
mov dword [esp + 8], ebp
call fcn.0040d770
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x34]
mov byte [ecx], dl
movzx ecx, byte [esp + 0x11f6]
mov byte [esp + 0x34], cl
lea edx, [0x52bea0]
mov dword [esp], edx
lea ebx, [esp + 0x1ac]
mov dword [esp + 4], ebx
lea ebp, [0x5d1fbc]
mov dword [esp + 8], ebp
call fcn.0040d770
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x34]
mov byte [ecx], dl
movzx ecx, byte [esp + 0x11f7]
mov byte [esp + 0x34], cl
lea edx, [0x52bea0]
mov dword [esp], edx
lea ebx, [esp + 0x1ac]
mov dword [esp + 4], ebx
lea ebp, [0x5d1fc4]
mov dword [esp + 8], ebp
call fcn.0040d770
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x34]
mov byte [ecx], dl
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x218]
mov ebx, dword [edx + ecx*4 + 0x84]
lea edi, [esp + 0x1e4]
xor eax, eax
call fcn.00468aa4
lea ecx, [0x538380]
mov dword [esp], ecx
mov dword [esp + 4], ebx
lea ebx, [esp + 0x1e4]
mov dword [esp + 8], ebx
call fcn.0040dfe0
jmp 0x4ffc1c
lea eax, [0x538380]
mov dword [esp], eax
lea ecx, [esp + 0x1c8]
mov dword [esp + 4], ecx
lea edx, [esp + 0x3b]
mov dword [esp + 8], edx
call fcn.0040d770
mov eax, dword [esp + 0xc]
mov byte [eax], 3
lea eax, [0x52bea0]
mov dword [esp], eax
lea ecx, [esp + 0x1ac]
mov dword [esp + 4], ecx
lea edx, [0x5d3498]
mov dword [esp + 8], edx
call fcn.0040d770
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x2e]
mov byte [eax], cl
lea eax, [0x52bea0]
mov dword [esp], eax
lea ecx, [esp + 0x1ac]
mov dword [esp + 4], ecx
lea edx, [0x5d3498]
mov dword [esp + 8], edx
call fcn.0040d220
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x70]
mov byte [esp + ecx + 0xe0c], al
jmp 0x4ff6b7
mov ecx, dword [esp + 0x70]
cmp dword [esp + 0x1ac], 4
jne 0x4ff6f6
lea eax, [0x52bea0]
mov dword [esp], eax
lea ecx, [esp + 0x1ac]
mov dword [esp + 4], ecx
lea ecx, [0x5d3498]
mov dword [esp + 8], ecx
call fcn.0040d220
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x70]
mov byte [esp + ecx + 0xe0c], al
mov dword [esp], ecx
call fcn.004f26c0
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x218]
mov edx, dword [ecx + eax*4 + 0x84]
test edx, edx
je 0x4ff718
mov edx, dword [edx]
jmp 0x4ff71a
xor edx, edx
mov ebx, dword [esp + 4]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 8]
mov dword [esp + 0x50], ebp
cmp edx, 2
jle 0x4ff73f
xor esi, esi
xor edx, edx
lea edi, [esp + 0x1c8]
jmp 0x4ff848
mov eax, dword [ecx + 0x74]
movzx edx, byte [esp + 0x11f5]
mov dword [esp], eax
mov byte [esp + 4], dl
call fcn.0050cd80
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 9]
movzx edx, byte [esp + 0xa]
mov byte [esp + 0x41], al
mov byte [esp + 0x42], cl
mov byte [esp + 0x43], dl
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x218]
mov edx, dword [ecx + eax*4 + 0x84]
lea ebx, [0x538380]
mov dword [esp], ebx
mov dword [esp + 4], edx
lea edx, [esp + 0x41]
mov dword [esp + 8], edx
call fcn.0040d3f0
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4ff7c2
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x218]
mov ebx, dword [esp + 0x50]
xor esi, esi
xor eax, eax
lea ebp, [esp + 0x1c8]
jmp 0x4ff836
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x218]
mov ebp, dword [ebx + edx*4 + 0x84]
movzx ecx, byte [ecx]
mov byte [esp + 0x33], cl
lea edi, [esp + 0x1e4]
xor eax, eax
call fcn.00468aa4
lea ecx, [0x538380]
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea ebp, [esp + 0x1e4]
mov dword [esp + 8], ebp
call fcn.0040dfe0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x218]
mov ebx, dword [esp + 0x50]
movzx ebp, byte [esp + 0x33]
jmp 0x4ffcb4
mov eax, 0
lea ebp, [esp + 0x1c8]
xchg esi, ebx
setne bl
xchg esi, ebx
mov ecx, edx
mov ebx, dword [esp + 0x54]
mov edx, eax
mov edi, ebp
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x114], edi
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
xchg esi, eax
test al, al
xchg esi, eax
je 0x4ff9a0
movzx esi, byte [ecx + 0x19]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4ff999
mov byte [esp + 0x30], dl
lea edi, [esp + 0x17c]
xor eax, eax
call fcn.00468aaa
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call fcn.00409b00
mov ecx, dword [esp + 4]
lea edx, [0x52aa00]
mov dword [esp + 0x17c], edx
mov dword [esp + 0x180], ecx
lea ecx, [0x52abc0]
mov dword [esp + 0x184], ecx
movzx ebx, byte [esp + 0x30]
movzx ebx, bl
lea ebp, [0x684860]
lea ebx, [ebp + ebx*8]
mov dword [esp + 0x188], ebx
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x218]
mov eax, dword [esi + ebx*4 + 0x84]
lea ebp, [0x538380]
mov dword [esp + 0x18c], ebp
mov dword [esp + 0x190], eax
lea edi, [esp + 0x194]
xor eax, eax
call fcn.00468aaa
lea ecx, [0x500390]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x19c], 0x38
lea ecx, [0x5541a1]
mov dword [esp + 0x198], ecx
mov dword [esp + 0x1a4], 3
mov dword [esp + 0x1a8], 3
lea ecx, [esp + 0x17c]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [0x68b9c4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 2
lea ecx, [esp + 0x194]
mov dword [esp + 0xc], ecx
call fcn.004b1180
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x218]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x114]
xor edx, edx
jmp 0x4ffe15
movzx edx, byte [esp + eax + 0xe0c]
or edx, 8
mov byte [esp + eax + 0xe0c], dl
xor edx, edx
jmp 0x4ffcf6
mov edx, dword [esp + 0x11c]
mov ebx, dword [esp + 0x68]
xor ebp, ebp
xor esi, esi
jmp 0x4ffd1a
cmp ebp, ebx
jmp 0x4ff9d3
mov ebp, esi
jge 0x4ff9e0
mov esi, ebp
mov ebp, dword [esp + 0x6c]
jmp 0x4ff36b
inc ebx
mov ebp, dword [esp + 0x6c]
cmp ebp, ebx
jae 0x4ffa26
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x52c2a0]
mov dword [esp + 0x10], eax
call fcn.0044f350
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x218]
mov edx, ebx
mov ebx, eax
mov eax, dword [esp + 0x70]
lea esi, [edx + ebx*8 - 8]
mov edi, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esi], edi
mov dword [esi + 4], ecx
lea esi, [ebx - 1]
jmp 0x4ff36b
cmp edx, 0x100
jg 0x4ffa54
xor ecx, ecx
jmp 0x4ffb03
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp], edx
call fcn.00409b00
mov eax, dword [esp + 4]
lea ecx, [0x52aa00]
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
lea eax, [0x5d34c8]
mov dword [esp + 0x168], eax
lea eax, [0x552a67]
mov dword [esp], eax
mov dword [esp + 4], 0x2e
lea eax, [esp + 0x15c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004a1ec0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x124c], eax
mov dword [esp + 0x1250], ecx
add esp, 0x214
ret
inc ecx
cmp ecx, edx
jge 0x4ffb3a
lea ebp, [ebx + ecx*8]
mov esi, dword [ebp + 4]
mov ebp, dword [ebp]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], esi
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], esi
xor ebp, ebp
jmp 0x4ffbec
movzx eax, byte [eax + 0x1a]
test al, al
jne 0x4ffbbd
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov dword [esp], edx
call fcn.00409b00
mov eax, dword [esp + 4]
lea ecx, [0x52aa00]
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], eax
mov eax, dword [0x68b9cc]
lea ecx, [0x5d4354]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x550255]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x24
lea eax, [esp + 0x13c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call fcn.004a48b0
mov dword [esp + 0x124c], 0
mov dword [esp + 0x1250], 0
add esp, 0x214
ret
movzx edi, byte [esp + ebp + 0xc4]
xchg edi, eax
mov byte [esp + esi + 0x224], al
xchg edi, eax
inc ebp
cmp ebp, 8
jge 0x4ffb02
lea esi, [ebp + ecx*8]
cmp esi, 0x800
jb 0x4ffbda
mov eax, esi
mov ecx, 0x800
call fcn.004688d0
lea eax, [esp + 0x1e4]
mov dword [esp], eax
call fcn.0040e220
mov eax, dword [esp + 0x1e4]
test eax, eax
je 0x4ff6b3
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
movzx eax, byte [eax + 2]
mov byte [esp + 0x3b], cl
mov byte [esp + 0x3c], dl
mov byte [esp + 0x3d], al
mov eax, dword [esp + 0x1e8]
movzx eax, byte [eax]
mov byte [esp + 0x2e], al
lea ecx, [0x538380]
mov dword [esp], ecx
lea edx, [esp + 0x1c8]
mov dword [esp + 4], edx
lea ebx, [esp + 0x3b]
mov dword [esp + 8], ebx
call fcn.0040d3f0
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4ffc0d
jmp 0x4ff626
lea eax, [esp + 0x1e4]
mov dword [esp], eax
call fcn.0040e220
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x218]
mov edx, dword [esp + 0x50]
movzx ebx, byte [esp + 0x33]
mov ecx, eax
mov edx, dword [esp + 0x218]
mov ebx, dword [esp + 0x50]
movzx ebp, byte [esp + 0x33]
mov esi, dword [esp + 0x1e4]
test esi, esi
je 0x4ff823
mov eax, dword [esp + 0x1e8]
movzx eax, byte [eax]
xchg ebp, ebx
cmp al, bl
xchg ebp, ebx
je 0x4ffc7f
mov dword [esp + 0x12c], esi
mov byte [esp + 0x30], al
xor edi, edi
jmp 0x4ffefc
movzx esi, byte [esp + 0x31]
xchg esi, eax
mov byte [esp + edx + 0x94], al
xchg esi, eax
inc edx
cmp edx, 8
jge 0x4ff9b9
mov dword [esp + 0x7c], edx
xor esi, esi
xor esi, esi
xchg esi, eax
mov byte [esp + 0x31], al
xchg esi, eax
xor esi, esi
jmp 0x4ffd6b
lea esi, [ebp + 1]
mov edi, ebp
mov ebp, esi
mov esi, edi
cmp ebp, ebx
jge 0x4ff9d1
lea esi, [edx + ebp*8]
mov esi, dword [esi]
cmp dword [esp + 0x94], esi
jne 0x4ffd11
lea esi, [edx + ebp*8 + 4]
mov esi, dword [esi]
cmp dword [esp + 0x98], esi
jne 0x4ffd11
jmp 0x4ff9cd
lea esi, [ebx + 2]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x218]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x114]
xchg ebp, eax
mov byte [esp + 0x31], al
xchg ebp, eax
mov ebp, dword [esp + 0x50]
cmp esi, 8
jge 0x4ffce7
mov dword [esp + 0x58], esi
mov dword [esp], ecx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
lea eax, [edx + ebp]
mov dword [esp + 8], eax
call fcn.004f2650
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0xd]
movzx edx, byte [esp + 0xe]
mov byte [esp + 0x35], al
mov byte [esp + 0x36], cl
mov byte [esp + 0x37], dl
lea eax, [0x538380]
mov dword [esp], eax
mov ecx, dword [esp + 0x114]
mov dword [esp + 4], ecx
lea edx, [esp + 0x35]
mov dword [esp + 8], edx
call fcn.0040d3f0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4ffdf8
mov edx, dword [esp + 0xc]
movzx edx, byte [edx]
mov ebx, dword [esp + 0x58]
lea ecx, [ebx - 6]
neg ecx
shl edx, cl
cmp cl, 0x20
sbb ebp, ebp
and edx, ebp
movzx ebp, byte [esp + 0x31]
or ebp, edx
jmp 0x4ffd44
mov ebx, dword [esp + 0x58]
movzx ebp, byte [esp + 0x31]
jmp 0x4ffd44
movzx esi, byte [esp + 0x32]
xchg esi, eax
mov byte [esp + edx + 0x94], al
xchg esi, eax
inc edx
cmp edx, 8
jge 0x4ff9b9
mov dword [esp + 0x80], edx
xor esi, esi
xor esi, esi
xchg esi, eax
mov byte [esp + 0x32], al
xchg esi, eax
xor esi, esi
jmp 0x4ffe5d
lea esi, [ebx + 1]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x218]
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x114]
xchg ebp, eax
mov byte [esp + 0x32], al
xchg ebp, eax
mov ebp, dword [esp + 0x50]
cmp esi, 8
jge 0x4ffe06
mov dword [esp + 0x5c], esi
mov dword [esp], ecx
lea eax, [esi + ebx]
mov dword [esp + 4], eax
lea eax, [edx + ebp]
mov dword [esp + 8], eax
call fcn.004f2650
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0xd]
movzx edx, byte [esp + 0xe]
mov byte [esp + 0x38], al
mov byte [esp + 0x39], cl
mov byte [esp + 0x3a], dl
lea eax, [0x538380]
mov dword [esp], eax
mov ecx, dword [esp + 0x114]
mov dword [esp + 4], ecx
lea edx, [esp + 0x38]
mov dword [esp + 8], edx
call fcn.0040d3f0
movzx eax, byte [esp + 0x10]
test al, al
je 0x4ffee6
mov edx, dword [esp + 0xc]
movzx edx, byte [edx]
mov ebx, dword [esp + 0x5c]
lea ecx, [ebx - 7]
neg ecx
shl edx, cl
cmp cl, 0x20
sbb ebp, ebp
and edx, ebp
movzx ebp, byte [esp + 0x32]
or ebp, edx
jmp 0x4ffe33
mov ebx, dword [esp + 0x5c]
movzx ebp, byte [esp + 0x32]
jmp 0x4ffe33
inc edi
mov esi, dword [esp + 0x12c]
cmp edi, 8
jge 0x4ffc7f
mov dword [esp + 0x84], edi
mov byte [esp + 0xbc], al
xor eax, eax
mov dword [esp + 0x60], eax
movzx eax, byte [esp + 0xbc]
jmp 0x4fff55
mov eax, dword [esp + 0x60]
add eax, 2
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x218]
mov ebx, dword [esp + 0x50]
movzx ebp, byte [esp + 0x33]
mov esi, dword [esp + 0x12c]
mov edi, dword [esp + 0x84]
mov dword [esp + 0x60], eax
movzx eax, byte [esp + 0x30]
mov esi, dword [esp + 0x60]
cmp esi, 8
jge 0x4ffef4
mov dword [esp], edx
lea eax, [esi + ecx]
mov dword [esp + 4], eax
lea eax, [edi + ebx]
mov dword [esp + 0x90], eax
mov dword [esp + 8], eax
call fcn.004f2650
movzx eax, byte [esp + 0xc]
movzx ecx, byte [esp + 0xd]
movzx edx, byte [esp + 0xe]
mov byte [esp + 0x41], al
mov byte [esp + 0x42], cl
mov byte [esp + 0x43], dl
mov eax, dword [esp + 0x218]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
lea ebx, [edx + ecx + 1]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 8], ebx
call fcn.004f2650
movzx eax, byte [esp + 0xd]
movzx ecx, byte [esp + 0xe]
movzx edx, byte [esp + 0xc]
mov byte [esp + 0x3e], dl
mov byte [esp + 0x3f], al
mov byte [esp + 0x40], cl
movzx edx, byte [esp + 0x41]
cmp byte [esp + 0x3e], dl
jne 0x4ffff6
cmp byte [esp + 0x42], al
jne 0x4ffff6
cmp byte [esp + 0x43], cl
je 0x4fff23
movzx eax, byte [esp + 0x30]
mov ecx, dword [esp + 0x70]
mov byte [esp + ecx + 0xe0c], al
call fcn.0040ce30
mov eax, dword [esp]
mov dword [esp + 0x128], eax
mov ecx, dword [esp + 0x218]
mov edx, dword [ecx + 0x74]
movzx ebx, byte [esp + 0x11f5]
mov dword [esp], edx
mov byte [esp + 4], bl
call fcn.0050cd80
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 9]
movzx edx, byte [esp + 0xa]
mov byte [esp + 0x3e], al
mov byte [esp + 0x3f], cl
mov byte [esp + 0x40], dl
lea eax, [0x538380]
mov dword [esp], eax
mov ecx, dword [esp + 0x128]
mov dword [esp + 4], ecx
lea edx, [esp + 0x3e]
mov dword [esp + 8], edx
call fcn.0040d770
mov eax, dword [esp + 0xc]
mov byte [eax], 0
mov eax, dword [esp + 0x218]
mov ecx, dword [eax + 0x74]
mov dword [esp], ecx
movzx ecx, byte [esp + 0x30]
mov byte [esp + 4], cl
call fcn.0050cd80
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 9]
movzx edx, byte [esp + 0xa]
mov byte [esp + 0x3e], al
mov byte [esp + 0x3f], cl
mov byte [esp + 0x40], dl
lea eax, [0x538380]
mov dword [esp], eax
mov ecx, dword [esp + 0x128]
mov dword [esp + 4], ecx
lea edx, [esp + 0x3e]
mov dword [esp + 8], edx
call fcn.0040d770
mov eax, dword [esp + 0xc]
mov byte [eax], 1
call fcn.0040ce30
mov eax, dword [esp]
mov dword [esp + 0x124], eax
movzx ecx, byte [esp + 0x11f5]
mov byte [esp + 0x34], cl
lea edx, [0x52bea0]
mov dword [esp], edx
mov dword [esp + 4], eax
lea ebx, [0x5d34ec]
mov dword [esp + 8], ebx
call fcn.0040d770
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x34]
mov byte [eax], cl
lea eax, [0x52bea0]
mov dword [esp], eax
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], ecx
lea ecx, [0x5d1fbc]
mov dword [esp + 8], ecx
call fcn.0040d770
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x30]
mov byte [eax], cl
mov eax, dword [esp + 0x12c]
test eax, eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x218]
mov ebx, dword [esp + 0x50]
movzx eax, byte [esp + 0x30]
mov ebp, dword [esp + 0x128]
jmp 0x4ff82f
inc ebx
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x134]
cmp ebx, ebp
jge 0x4ff1ae
movzx esi, byte [esi + ebx]
cmp edx, 2
jg 0x4ff1ae
mov dword [esp + 0xb4], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xb4]
jmp 0x500229
mov eax, dword [esp + 0x218]
jmp 0x5001b5
mov ebp, 0xffffffff
test ebp, ebp
jge 0x50016d
inc edx
cmp edi, edx
jae 0x50020c
mov dword [esp + 0x90], ebx
xchg esi, eax
mov byte [esp + 0x2b], al
xchg esi, eax
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x52abc0]
mov dword [esp + 0x10], eax
call fcn.0044f350
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x218]
mov ebx, dword [esp + 0x90]
movzx esi, byte [esp + 0x2b]
xchg esi, eax
mov byte [edx + ecx - 1], al
xchg esi, eax
jmp 0x50016d
lea eax, [ebp + 1]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x218]
mov ebp, dword [esp + 0x44]
cmp ebp, edx
jge 0x5001b0
lea eax, [ecx + ebp]
xchg esi, ebx
cmp byte [eax], bl
xchg esi, ebx
jne 0x500217
jmp 0x5001a7
mov eax, dword [esp + 0x90]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x218]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x134]
cmp ecx, ebp
jge 0x5002b4
mov dword [esp + 0x90], ecx
movzx ecx, byte [esi + ecx]
cmp edx, 2
jg 0x5002b4
mov dword [esp + 0x8c], edx
mov esi, dword [eax + 0x1030]
mov eax, dword [eax + 0x1034]
mov dword [esp + 0xac], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xac]
jmp 0x5002cd
mov edx, dword [esp + 0x8c]
jmp 0x5002ac
mov ebp, 0xffffffff
test ebp, ebp
jl 0x500245
xor eax, eax
jmp 0x5002e0
mov ecx, ebx
jmp 0x4ff1a3
lea edx, [ebp + 1]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x48]
cmp ebp, eax
jge 0x5002a7
lea edx, [ebp + esi]
cmp byte [edx], cl
jne 0x5002bb
jmp 0x50029e
inc eax
cmp eax, edx
jge 0x5002ee
lea ebp, [ebx + eax]
cmp byte [ebp], cl
jne 0x5002df
jmp 0x5002f3
mov eax, 0xffffffff
test eax, eax
jge 0x500245
inc edx
cmp edi, edx
jae 0x500337
mov byte [esp + 0x2c], cl
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x52abc0]
mov dword [esp + 0x10], eax
call fcn.0044f350
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x2c]
mov byte [edx + ebx - 1], cl
jmp 0x500245
inc edx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x130]
mov edx, dword [esp + 0x4c]
cmp edx, ebp
jge 0x4ff0e2
lea ebx, [esi + edx]
cmp byte [ebx], al
jne 0x500340
jmp 0x4ff0d9
mov eax, dword [esp + 0x218]
jmp 0x4ff186
call fcn.00467460
jmp fcn.004fec80