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

Disassembly:
mov ecx, dword [0x8cbf38]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x144]
cmp eax, dword [ecx + 8]
jbe 0x4c0f86
sub esp, 0x1c4
lea edi, [esp]
lea esi, [esp + 0x1c8]
call fcn.0046c59e
call fcn.004c61f0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1a4], edx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x70], ebx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x8c], ebp
mov esi, dword [esp + 0x1ec]
mov edi, dword [esp + 0x1e8]
mov esi, 0xffffffff
mov dword [esp + 0x34], esi
mov edi, 0xffffffff
mov dword [esp + 0x80], edi
xor edi, edi
mov dword [esp + 0x78], edi
xor esi, esi
mov dword [esp + 0x84], esi
xor esi, esi
mov dword [esp + 0x38], esi
xor esi, esi
mov dword [esp + 0x7c], esi
xor esi, esi
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x1e4]
mov dword [esp + 0xa8], esi
mov edi, dword [esp + 0x1e0]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x1dc]
mov dword [esp + 0x1ac], eax
mov esi, dword [esp + 0x1ec]
mov edi, dword [esp + 0x1e8]
mov eax, dword [esp + 0xb4]
jmp 0x4bf42f
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x1a4]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x1ac], edi
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x198]
test esi, esi
je 0x4c0712
mov dword [esp], edi
mov dword [esp + 4], esi
call fcn.004bd210
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x198], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5c], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 8]
test eax, eax
jne 0x4bf484
mov eax, dword [esp + 0xa8]
mov ebp, dword [esp + 0x1ac]
mov esi, dword [esp + 0xa4]
jmp 0x4bf536
mov esi, dword [esp + 0xa4]
lea edi, [eax + esi]
mov ecx, dword [esp + 0xa8]
cmp ecx, edi
jae 0x4bf4ea
mov dword [esp + 0x6c], eax
mov dword [esp + 0x1a0], ebp
mov eax, dword [esp + 0x1ac]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x1a0]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0x1ac]
lea ebx, [edx + esi]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.0046c7b0
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0x1ac]
mov esi, dword [esp + 0xa8]
test ebx, ebx
je 0x4c0727
mov dword [esp + 0x1a8], ebp
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], eax
mov edi, ebp
mov ebp, dword [esp + 0x34]
test ebp, ebp
jge 0x4bf5ca
test ebx, 0x100
je 0x4bf5ca
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov byte [esp + 8], 1
call fcn.004c8160
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
inc eax
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x1a8]
mov ebp, ecx
mov dword [esp + 0x78], edx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x80]
test ebp, ebp
jge 0x4bf681
test ebx, 0x200
je 0x4bf681
nop
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.00463c30
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x91a2b3c5
imul ecx
lea eax, [edx + ecx]
sar eax, 0xb
mov edx, ecx
sar ecx, 0x1f
sub eax, ecx
imul ecx, eax, 0xe10
sub edx, ecx
mov ecx, eax
mov eax, 0x88888889
mov ebx, edx
imul edx
lea eax, [ebx + edx]
sar eax, 5
mov edx, ebx
sar ebx, 0x1f
sub eax, ebx
imul ebx, eax, 0x3c
sub edx, ebx
mov ebx, dword [esp + 0x60]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x1a8]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x64], edx
mov ebp, ecx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x80], ebp
and ebx, 0xffff
cmp ebx, 0x109
jg 0x4c00fb
cmp ebx, 0x103
jg 0x4bfdca
cmp ebx, 0x23
jg 0x4bfc88
cmp ebx, 0x17
je 0x4bfa51
lea ecx, [ebx - 0x18]
cmp ecx, 9
ja 0x4bf9d6
mov ecx, dword [esp + 0x70]
test ecx, ecx
jne 0x4bf739
mov ebx, dword [esp + 0x60]
cmp ebx, 0x18
je 0x4bf6e9
cmp ebx, 0x1b
je 0x4bf6e9
cmp ebx, 0x19
je 0x4bf6e9
cmp ebx, 0x1a
je 0x4bf6e9
cmp ebx, 0x1c
jne 0x4bf73d
lea ebx, [esi + 1]
cmp eax, ebx
jae 0x4bf72f
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov edi, ebp
mov ebp, dword [esp + 0x80]
mov byte [ebx + edi - 1], 0x5a
jmp 0x4bf3f2
mov ebx, dword [esp + 0x60]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov dword [esp + 0xa8], edx
mov eax, ecx
sar ecx, 0x1f
sub edx, ecx
test edx, edx
jge 0x4bf7e2
lea edx, [esi + 1]
mov esi, dword [esp + 0x9c]
cmp esi, edx
jae 0x4bf7bc
mov dword [esp + 0xa4], ecx
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x60]
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x80]
mov byte [edx + edi - 1], 0x2d
mov ebp, dword [esp + 0xa8]
sub ecx, ebp
neg eax
mov dword [esp + 0xac], eax
mov eax, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0xac]
jmp 0x4bf83e
lea ecx, [esi + 1]
mov esi, dword [esp + 0x9c]
cmp esi, ecx
jae 0x4bf839
mov dword [esp + 0x30], edx
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x80]
mov byte [ecx + edi - 1], 0x2b
mov dword [esp + 0xa8], edx
mov dword [esp + 0x88], eax
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov eax, 0x88888889
mov ebx, edx
imul edx
add edx, ebx
sar edx, 5
sar ebx, 0x1f
sub edx, ebx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x60]
cmp ebp, 0x1b
je 0x4bf8a6
cmp ebp, 0x20
je 0x4bf8a6
cmp ebp, 0x1c
je 0x4bf8a6
cmp ebp, 0x21
jne 0x4bf8e2
inc ebx
cmp ecx, ebx
jae 0x4bf8dd
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x60]
mov byte [ebx + edx - 1], 0x3a
cmp ebp, 0x1f
je 0x4bf92b
cmp ebp, 0x1a
je 0x4bf92b
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov eax, dword [esp + 0xa4]
imul eax, eax, 0x3c
mov ecx, dword [esp + 0xa8]
sub ecx, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x60]
cmp ebp, 0x19
je 0x4bf977
cmp ebp, 0x1e
je 0x4bf977
cmp ebp, 0x21
je 0x4bf93f
cmp ebp, 0x1c
jne 0x4bf9be
inc ebx
cmp ecx, ebx
jae 0x4bf972
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov byte [ebx + edx - 1], 0x3a
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov eax, 0x88888889
mov ecx, dword [esp + 0x88]
imul ecx
add edx, ecx
sar edx, 5
mov ebx, ecx
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3c
sub ebx, ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x80]
mov eax, ecx
mov edi, edx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
jmp 0x4bf3f2
cmp ebx, 0x22
jge 0x4bf9e7
mov ecx, dword [esp + 0x198]
jmp 0x4c0579
lea edi, [esp + 0x1b0]
mov edx, esi
lea esi, [esp + 0x1c8]
call fcn.0046c59e
mov ecx, dword [esp + 0x1b0]
and ecx, 0x3fffffff
nop
mov ebx, dword [esp + 0x1a8]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x10], eax
call fcn.004be460
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4bfaf3
lea ecx, [ebx + esi]
cmp eax, ecx
jae 0x4bfa9b
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x74]
mov esi, dword [esp + 0xa0]
mov edi, ebp
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0x1ac], edi
lea edx, [edi + esi]
mov dword [esp], edx
mov edx, dword [esp + 0x1a4]
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.0046c7b0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x1ac]
jmp 0x4bf3f2
mov eax, 0x88888889
mov ebx, dword [esp + 0x70]
imul ebx
add edx, ebx
sar edx, 5
mov dword [esp + 0xa8], edx
mov eax, ebx
sar ebx, 0x1f
sub edx, ebx
test edx, edx
jge 0x4bfb8b
lea edx, [esi + 1]
mov esi, dword [esp + 0x9c]
cmp esi, edx
jae 0x4bfb75
mov dword [esp + 0xa4], ebx
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov ebx, dword [esp + 0xa4]
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x80]
mov byte [edx + edi - 1], 0x2d
mov ecx, dword [esp + 0xa8]
sub ebx, ecx
mov ecx, ebx
mov ebx, edx
mov edx, ecx
jmp 0x4bfbea
lea ebx, [esi + 1]
mov esi, dword [esp + 0x9c]
cmp esi, ebx
jae 0x4bfbe5
mov dword [esp + 0x2c], edx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x2c]
mov edi, ebp
mov esi, eax
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x80]
mov byte [ebx + edi - 1], 0x2b
mov dword [esp + 0xa8], edx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov eax, 0x88888889
mov ecx, edx
imul edx
mov ebx, ecx
sar ecx, 0x1f
add edx, ebx
sar edx, 5
sub edx, ecx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov ecx, dword [esp + 0xa4]
imul ecx, ecx, 0x3c
mov edx, dword [esp + 0xa8]
sub edx, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x101
jne 0x4bfd01
mov ebx, dword [esp + 0x78]
lea ecx, [ebx - 1]
cmp ecx, 0xb
jbe 0x4bfcdf
lea edi, [esp + 0xe4]
xor eax, eax
call fcn.0046c0bb
mov ecx, ebx
sar ebx, 0x1f
test ecx, ecx
sete al
test ebx, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
and eax, edi
test al, al
jne 0x4bfccd
mov edi, 0x14
jmp 0x4c0eaf
mov byte [esp + 0xf7], 0x30
mov eax, 0x13
jmp 0x4c0dfa
mov edx, dword [0x89e194]
cmp edx, ecx
jbe 0x4c0df1
mov ecx, dword [0x89e190]
lea ecx, [ecx + ebx*8 - 8]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x4c0d50
cmp ebx, 0x102
jne 0x4bfd7a
mov ebx, dword [esp + 0x78]
lea ecx, [ebx - 1]
cmp ecx, 0xb
ja 0x4bfd37
mov edx, dword [0x89e194]
cmp edx, ecx
jbe 0x4c0d47
mov ecx, dword [0x89e190]
lea ecx, [ecx + ebx*8 - 8]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x4c0bb8
lea edi, [esp + 0xf8]
xor eax, eax
call fcn.0046c0bb
mov ecx, ebx
sar ebx, 0x1f
test ecx, ecx
sete al
test ebx, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
and eax, edi
test al, al
jne 0x4bfd68
mov edi, 0x14
jmp 0x4c0c71
mov byte [esp + 0x10b], 0x30
mov eax, 0x13
jmp 0x4c0b37
cmp ebx, 0x103
jne 0x4c0579
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x106
jg 0x4bffb6
cmp ebx, 0x104
je 0x4bff72
cmp ebx, 0x105
jne 0x4bfeb1
mov eax, dword [esp + 0x8c]
add eax, 0x15180
mov edx, dword [esp + 0x90]
adc edx, 0
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x93a80
call fcn.00463c30
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0xc22e4507
imul ecx
lea eax, [ecx + edx]
sar eax, 0x10
sar ecx, 0x1f
sub eax, ecx
cmp eax, 6
jbe 0x4bfe90
mov dword [esp + 0xa8], eax
lea edi, [esp + 0xbc]
xor eax, eax
call fcn.0046c0bb
mov ecx, dword [esp + 0xa8]
mov edx, ecx
sar ecx, 0x1f
test edx, edx
sete bl
test ecx, ecx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4bfe7e
mov eax, 0x14
jmp 0x4c0a88
mov byte [esp + 0xcf], 0x30
mov eax, 0x13
jmp 0x4c0a01
mov ecx, dword [0x89e164]
cmp ecx, eax
jbe 0x4c09fc
mov ecx, dword [0x89e160]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x4c093c
mov eax, dword [esp + 0x8c]
add eax, 0x15180
mov edx, dword [esp + 0x90]
adc edx, 0
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x93a80
call fcn.00463c30
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0xc22e4507
imul ecx
lea eax, [ecx + edx]
sar eax, 0x10
sar ecx, 0x1f
sub eax, ecx
cmp eax, 6
ja 0x4bff21
mov ecx, dword [0x89e164]
cmp ecx, eax
jbe 0x4c0937
mov ebx, dword [0x89e160]
lea eax, [ebx + eax*8]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x4c07a4
mov dword [esp + 0xa8], eax
lea edi, [esp + 0xd0]
xor eax, eax
call fcn.0046c0bb
mov ecx, dword [esp + 0xa8]
mov edx, ecx
sar ecx, 0x1f
test ecx, ecx
sete bl
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebx, ebp
test bl, bl
jne 0x4bff60
mov eax, 0x14
jmp 0x4c0870
mov byte [esp + 0xe3], 0x30
mov eax, 0x13
jmp 0x4c0743
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x107
je 0x4c00b4
cmp ebx, 0x108
jne 0x4c006d
mov ebx, dword [esp + 0x84]
cmp ebx, 0xa
jge 0x4c002d
inc esi
cmp eax, esi
jae 0x4c0028
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x84]
mov edi, ebp
mov ebp, dword [esp + 0x80]
mov byte [esi + edi - 1], 0x20
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x20d
jg 0x4c03d1
cmp ebx, 0x113
jg 0x4c02ab
cmp ebx, 0x10a
je 0x4c01bb
cmp ebx, 0x10b
je 0x4c0177
cmp ebx, 0x113
jne 0x4c0579
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 4
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 3
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov ebx, dword [esp + 0x38]
cmp ebx, 0x64
jge 0x4c026b
inc esi
cmp eax, esi
jae 0x4c0213
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x38]
mov edi, ebp
mov ebp, dword [esp + 0x80]
mov byte [esi + edi - 1], 0x20
cmp ebx, 0xa
jge 0x4c026b
inc esi
cmp eax, esi
jae 0x4c0266
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x80]
mov byte [esi + edi - 1], 0x20
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x114
je 0x4c0371
cmp ebx, 0x20c
je 0x4c0331
cmp ebx, 0x20d
jne 0x4c0579
mov ebx, eax
mov eax, 0xaaaaaaab
imul ebp
add edx, ebp
sar edx, 3
mov eax, ebp
sar ebp, 0x1f
sub edx, ebp
lea edx, [edx + edx*2]
shl edx, 2
sub eax, edx
test eax, eax
jne 0x4c02f1
mov eax, 0xc
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov ebx, dword [esp + 0x34]
test ebx, ebx
jge 0x4c037b
neg ebx
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov ecx, ebx
sar ebx, 0x1f
sub edx, ebx
imul edx, edx, 0x64
sub ecx, edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x210
jle 0x4c0614
cmp ebx, 0x212
jle 0x4c0584
cmp ebx, 0x215
jne 0x4c04b1
cmp ebp, 0xc
jl 0x4c0452
lea ebx, [esi + 2]
cmp eax, ebx
jae 0x4c044a
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xa0]
mov edi, ebp
mov ebp, dword [esp + 0x80]
mov word [edi + esi], 0x4d50
jmp 0x4c04a8
lea ebx, [esi + 2]
cmp eax, ebx
jae 0x4c04a2
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xa0]
mov edi, ebp
mov ebp, dword [esp + 0x80]
mov word [edi + esi], 0x4d41
mov ecx, dword [esp + 0x70]
jmp 0x4bf3f2
cmp ebx, 0x216
jne 0x4c0579
cmp ebp, 0xc
jl 0x4c051a
lea ebx, [esi + 2]
cmp eax, ebx
jae 0x4c0512
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xa0]
mov edi, ebp
mov ebp, dword [esp + 0x80]
mov word [edi + esi], 0x6d70
jmp 0x4c0570
lea ebx, [esi + 2]
cmp eax, ebx
jae 0x4c056a
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xa0]
mov edi, ebp
mov ebp, dword [esp + 0x80]
mov word [edi + esi], 0x6d61
mov ecx, dword [esp + 0x70]
jmp 0x4bf3f2
mov ecx, dword [esp + 0x70]
mov ebx, esi
jmp 0x4bf3f2
cmp ebx, 0x211
jne 0x4c05d0
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x20e
jne 0x4c0682
mov ebx, eax
mov eax, 0xaaaaaaab
imul ebp
add edx, ebp
sar edx, 3
mov eax, ebp
sar ebp, 0x1f
sub edx, ebp
lea edx, [edx + edx*2]
shl edx, 2
sub eax, edx
test eax, eax
jne 0x4c0642
mov eax, 0xc
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
cmp ebx, 0x20f
jne 0x4c06ce
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004be0c0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebx, esi
mov edi, ebp
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xa4]
mov ebp, dword [esp + 0x1ac]
mov dword [esp + 0x1f0], ebp
mov dword [esp + 0x1f4], esi
mov dword [esp + 0x1f8], eax
add esp, 0x1c4
ret
cmp eax, 0x14
ja 0x4c084d
lea ecx, [eax - 0x14]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
lea eax, [esp + eax + 0xd0]
lea ecx, [esp + 0x12c]
mov dword [esp], ecx
lea ecx, [0x67e719]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea eax, [0x67cdc6]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 1
call fcn.00455520
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp eax, 3
jb 0x4c0841
mov eax, dword [esp + 0xa0]
lea ecx, [eax + 3]
mov edx, dword [esp + 0x9c]
cmp edx, ecx
jb 0x4c07cb
mov ebp, dword [esp + 0x1a8]
jmp 0x4c0817
mov dword [esp + 0x18c], ebx
mov eax, dword [esp + 0x1a8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 3
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18c]
mov edx, eax
mov eax, dword [esp + 0xa0]
movzx esi, word [ebx]
movzx ebx, byte [ebx + 2]
mov word [ebp + eax], si
mov byte [ebp + eax + 2], bl
mov eax, edx
mov ebx, ecx
mov edi, ebp
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x80]
jmp 0x4bf3f2
mov ecx, 3
mov edx, eax
call fcn.0046bf50
mov ecx, 0x14
call fcn.0046bf90
add ebp, esi
adc ebx, 0
lea ebp, [edx + 0x30]
mov esi, dword [esp + 0x40]
xchg ebp, eax
mov byte [esp + esi + 0xcf], al
xchg ebp, eax
mov edx, ecx
mov ecx, ebx
test ecx, ecx
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
test edx, edx
xchg esi, ebx
seta bl
xchg esi, ebx
and ebp, esi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4c0743
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], eax
lea ebx, [eax - 1]
mov dword [esp + 0xa8], ebx
mov eax, 0xcccccccd
mov esi, edx
mul edx
mov dword [esp + 0x98], edx
mov eax, ecx
mov edi, 0xcccccccd
mul edi
shr edx, 3
mov dword [esp + 0x94], edx
lea eax, [edx + edx*4]
mov ebp, dword [esp + 0x98]
shr ebp, 3
lea ebx, [ebp + ebp*4]
shl eax, 1
sub ecx, eax
mov eax, 0x19999999
mul ecx
lea ecx, [ecx + ecx*2]
shl ebx, 1
sub esi, ebx
lea ebx, [esi + ecx*2]
mov ecx, eax
mov eax, edi
mov esi, edx
mul ebx
shr edx, 3
add ebp, 0
mov ebx, dword [esp + 0x94]
adc ebx, 0
add ecx, ebp
adc ebx, esi
mov ebp, ecx
add ecx, edx
mov eax, 0xa
mov esi, edx
mul ecx
mov edx, dword [esp + 0x50]
sub edx, eax
mov eax, dword [esp + 0xa8]
cmp eax, 0x14
jb 0x4c0857
mov ecx, 0x14
call fcn.0046bf30
call fcn.0046bf30
mov edx, dword [esp + 0xa0]
lea ebx, [eax + edx]
mov ebp, dword [esp + 0x9c]
cmp ebp, ebx
jb 0x4c095a
mov esi, dword [esp + 0x1a8]
jmp 0x4c09ac
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x1a8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
lea ecx, [0x62f320]
mov dword [esp + 0x10], ecx
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0xa0]
mov esi, ebp
mov ebp, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x1ac], esi
add edx, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0046c7b0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov edi, dword [esp + 0x1ac]
jmp 0x4bf3f2
call fcn.0046bf30
cmp eax, 0x14
ja 0x4c0a63
lea ecx, [eax - 0x14]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
lea eax, [esp + eax + 0xbc]
lea ecx, [esp + 0x10c]
mov dword [esp], ecx
lea ecx, [0x67e719]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea eax, [0x67cdc6]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 1
call fcn.00455520
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
jmp 0x4c093c
mov ecx, 0x14
call fcn.0046bf90
add esi, edi
adc ebp, 0
lea esi, [edx + 0x30]
mov edi, dword [esp + 0x3c]
xchg esi, eax
mov byte [esp + edi + 0xbb], al
xchg esi, eax
mov edx, ecx
mov ecx, ebp
mov eax, ebx
test ecx, ecx
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
test edx, edx
xchg esi, ebx
seta bl
xchg esi, ebx
and ebp, esi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4c0a01
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], eax
lea ebx, [eax - 1]
mov eax, 0xcccccccd
mov esi, edx
mul edx
mov eax, 0xcccccccd
mov edi, edx
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
shr edi, 3
lea ebp, [edi + edi*4]
shl ebp, 1
sub esi, ebp
shl eax, 1
sub ecx, eax
mov eax, 0x19999999
mov ebp, edx
mul ecx
mov dword [esp + 0x98], edx
lea ecx, [ecx + ecx*2]
lea esi, [esi + ecx*2]
mov ecx, eax
mov eax, 0xcccccccd
mul esi
shr edx, 3
add edi, 0
adc ebp, 0
add ecx, edi
mov esi, dword [esp + 0x98]
adc ebp, esi
mov esi, ecx
add ecx, edx
mov eax, 0xa
mov edi, edx
mul ecx
mov edx, dword [esp + 0x4c]
sub edx, eax
cmp ebx, 0x14
jb 0x4c0a6d
mov eax, ebx
mov ecx, 0x14
call fcn.0046bf30
cmp eax, 0x14
ja 0x4c0c3e
lea ecx, [eax - 0x14]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
lea eax, [esp + eax + 0xf8]
lea ecx, [esp + 0x16c]
mov dword [esp], ecx
lea ecx, [0x67dd13]
mov dword [esp + 4], ecx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea eax, [0x67cdc6]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 1
call fcn.00455520
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x1a8]
cmp ecx, 3
jb 0x4c0c32
lea ecx, [esi + 3]
cmp eax, ecx
jae 0x4c0c14
mov dword [esp + 0x194], edx
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x194]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0xa0]
mov edi, ebp
mov ebp, dword [esp + 0x80]
movzx ebx, word [edx]
movzx edx, byte [edx + 2]
mov word [edi + esi], bx
mov byte [edi + esi + 2], dl
mov edx, dword [esp + 0x5c]
mov ebx, ecx
mov ecx, dword [esp + 0x70]
jmp 0x4bf3f2
mov edx, ecx
mov ecx, 3
call fcn.0046bf50
mov ecx, 0x14
call fcn.0046bf90
add ebx, edi
adc ebp, 0
add edx, 0x30
mov ebx, dword [esp + 0x48]
mov byte [esp + ebx + 0xf7], dl
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xa0]
mov ebx, ebp
mov edi, eax
mov ebp, dword [esp + 0x80]
test ebx, ebx
sete al
seta dl
test ecx, ecx
xchg ebp, ebx
seta bl
xchg ebp, ebx
and eax, ebp
or eax, edx
test al, al
je 0x4c0d27
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], edi
lea edx, [edi - 1]
mov dword [esp + 0xa8], edx
mov eax, 0xcccccccd
mul ecx
mov dword [esp + 0x98], edx
mov eax, ebx
mov esi, 0xcccccccd
mul esi
mov edi, dword [esp + 0x98]
shr edi, 3
lea eax, [edi + edi*4]
shr edx, 3
lea ebp, [edx + edx*4]
shl eax, 1
sub ecx, eax
shl ebp, 1
sub ebx, ebp
mov eax, 0x19999999
mov ebp, edx
mul ebx
mov dword [esp + 0x98], edx
lea ebx, [ebx + ebx*2]
lea ebx, [ecx + ebx*2]
mov ecx, eax
mov eax, esi
mul ebx
shr edx, 3
add edi, 0
adc ebp, 0
add ecx, edi
mov ebx, dword [esp + 0x98]
adc ebp, ebx
mov ebx, ecx
add ecx, edx
mov eax, 0xa
mov edi, edx
mul ecx
mov edx, dword [esp + 0x58]
sub edx, eax
mov eax, dword [esp + 0xa8]
cmp eax, 0x14
jb 0x4c0c48
jmp 0x4c0d3d
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x80]
mov eax, edi
jmp 0x4c0b37
mov ecx, 0x14
call fcn.0046bf30
mov eax, ecx
mov ecx, edx
call fcn.0046bf30
lea ebx, [ecx + esi]
cmp eax, ebx
jae 0x4c0da0
mov dword [esp + 0x190], edx
mov dword [esp + 0x28], ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x62f320]
mov dword [esp + 0x10], eax
call fcn.00451aa0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x190]
mov esi, dword [esp + 0xa0]
mov edi, ebp
mov dword [esp + 0x1ac], edi
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xa4], eax
lea ebp, [edi + esi]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0046c7b0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x1ac]
jmp 0x4bf3f2
mov eax, ecx
mov ecx, edx
call fcn.0046bf30
cmp eax, 0x14
ja 0x4c0e7c
lea ecx, [eax - 0x14]
neg ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
lea eax, [esp + eax + 0xe4]
lea ecx, [esp + 0x14c]
mov dword [esp], ecx
lea ecx, [0x67dd13]
mov dword [esp + 4], ecx
mov dword [esp + 8], 8
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
lea eax, [0x67cdc6]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 1
call fcn.00455520
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x1a8]
jmp 0x4c0d50
mov ecx, 0x14
call fcn.0046bf90
add ebx, edi
adc ebp, 0
add edx, 0x30
mov ebx, dword [esp + 0x44]
mov byte [esp + ebx + 0xe3], dl
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0xa0]
mov ebx, ebp
mov edi, eax
mov ebp, dword [esp + 0x80]
test ebx, ebx
sete al
seta dl
test ecx, ecx
xchg ebp, ebx
seta bl
xchg ebp, ebx
and eax, ebp
or eax, edx
test al, al
je 0x4c0f65
mov dword [esp + 0x54], ecx
mov dword [esp + 0x44], edi
lea edx, [edi - 1]
mov dword [esp + 0xa8], edx
mov eax, 0xcccccccd
mul ecx
mov dword [esp + 0x98], edx
mov eax, ebx
mov esi, 0xcccccccd
mul esi
shr edx, 3
mov dword [esp + 0x94], edx
lea eax, [edx + edx*4]
mov edi, dword [esp + 0x98]
shr edi, 3
lea ebp, [edi + edi*4]
shl eax, 1
sub ebx, eax
mov eax, 0x19999999
mul ebx
lea ebx, [ebx + ebx*2]
shl ebp, 1
sub ecx, ebp
lea ebx, [ecx + ebx*2]
mov ecx, eax
mov eax, esi
mov ebp, edx
mul ebx
shr edx, 3
add edi, 0
mov ebx, dword [esp + 0x94]
adc ebx, 0
add ecx, edi
adc ebp, ebx
mov ebx, ecx
add ecx, edx
mov eax, 0xa
mov edi, edx
mul ecx
mov edx, dword [esp + 0x54]
sub edx, eax
mov eax, dword [esp + 0xa8]
cmp eax, 0x14
jb 0x4c0e86
jmp 0x4c0f7b
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x80]
mov eax, edi
jmp 0x4c0dfa
mov ecx, 0x14
call fcn.0046bf30
nop
call fcn.0046aab0
jmp fcn.004bf300