Function at 0x47c3fa
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x4aaee9
call fcn.004a9d98
push ecx
mov eax, 0x1004
call fcn.004a6740
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x70], dl
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x50], 0x5c7a00f4
xor ebx, ebx
inc ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x44], 0xe4a6f444
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x64], 0x99e885dc
mov dword [ebp - 0x1c], 0xf2d6273
mov dword [ebp - 0x58], 0xbae5
push 3
lea ecx, [ebp - 0x764]
call fcn.0043e433
xor eax, eax
mov dword [ebp - 0x18], eax
push 2
pop edi
cmp dword [ebp - 0x18], edi
jge 0x47c483
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc8], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x47c46f
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x47c49b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x764]
mov dword [eax + ecx*4], 0x56b8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x47c488
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x1c]
dec dword [ebp - 0x1c]
cmp edx, eax
jg 0x47c4ba
xor ecx, ecx
mov eax, dword [ebp - 0xc8]
add eax, ecx
neg eax
sbb eax, eax
inc eax
mov ecx, 0xffff
cmp ecx, eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
cmp edx, 0x7c71
setge cl
neg ecx
xor eax, eax
cmp ecx, ebx
setl al
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
dec eax
imul eax, dword [ebp - 0xc4]
add eax, 0xfffffff6
mov ecx, dword [ebp - 0x30]
add ecx, eax
je 0x47c849
mov dword [ebp - 0x18], 0x98c5
mov dword [ebp - 0x20], 0x22ad
cmp dword [ebp - 0x20], 0x237f
jle 0x47c571
xor edi, edi
xor esi, esi
mov dword [ebp - 0x38], esi
mov ebx, esi
mov esi, 0x710c
mov eax, ebx
and eax, edi
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
dec ebx
dec esi
jne 0x47c53e
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0xdeb
jl 0x47c537
inc edi
cmp edi, 0x4a0f
jl 0x47c532
xor ebx, ebx
inc ebx
push 2
pop edi
mov dword [ebp - 0x24], 0
or esi, 0xffffffff
cmp dword [ebp - 0x24], ebx
jg 0x47c614
mov dword [ebp - 0x38], 0x67a9
mov dword [ebp - 0x44], 0
jmp 0x47c5b6
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0xd6c8400b
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xc8]
push 3
pop ecx
sub ecx, eax
add ecx, dword [ebp - 0x38]
mov dword [ebp - 0x38], ecx
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], ebx
jle 0x47c594
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xc8]
cmp dword [ebp - 0x44], 0
je 0x47c5f3
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
imul ecx, dword [ebp - 0x1c], 9
mov eax, dword [ebp - 0xc8]
add ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xc8], ecx
mov eax, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x50]
xor ecx, ecx
cmp eax, 0x7178
setg cl
mov dword [ebp - 0x44], ecx
inc dword [ebp - 0x24]
jmp 0x47c57b
and dword [ebp - 4], 0
cmp dword [ebp - 0x20], 0x1f0e
jge 0x47c630
mov edx, 0xac5268
mov ecx, 0xad8758
call fcn.0043fcc4
mov dword [ebp - 4], esi
jmp 0x47c65b
xor eax, eax
mov dword [ebp - 0x18], eax
push 4
pop esi
cmp dword [ebp - 0x18], ebx
jg 0x47c87b
mov dword [ebp - 0x20], 0x2908
cmp dword [ebp - 0x20], 0x2940
jle 0x47c6d3
mov esi, eax
mov dword [ebp - 0x38], eax
mov edi, esi
mov ebx, 0xcf9
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xb3c]
call fcn.00401a03
pop ecx
pop ecx
mov ecx, eax
call fcn.0043e313
push eax
call fcn.004945f7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb3c]
call fcn.0043e80f
dec edi
dec ebx
jne 0x47c688
mov esi, dword [ebp - 0x38]
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x6113
jl 0x47c681
xor eax, eax
inc ebx
push 2
pop edi
push 4
pop esi
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47c6e8
push eax
push 0x776
call dword [0xadb56c]
mov dword [ebp - 4], edi
cmp dword [ebp - 0x20], 0x26d5
jge 0x47c6ff
push 0xac5294
call fcn.004945f7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47c729
mov dword [ebp - 0x1c], 0x52ab
cmp dword [ebp - 0x1c], 0x53e7
jle 0x47c7e6
push 0x617
push 0x2409
push 0x599
call dword [0xadb3dc]
xor esi, esi
mov dword [ebp - 0x48], esi
xor ebx, ebx
mov dword [ebp - 0x20], 0x4dd
mov esi, ebx
mov dword [ebp - 0x38], 0x7e24
xor edi, edi
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
cmp edi, 0x756e
jl 0x47c76b
dec esi
dec dword [ebp - 0x38]
jne 0x47c769
mov esi, dword [ebp - 0x48]
add ebx, esi
dec dword [ebp - 0x20]
jne 0x47c760
inc esi
mov dword [ebp - 0x48], esi
cmp esi, 0x7fa
jl 0x47c757
xor eax, eax
push eax
push 0x1826
push eax
push eax
push 0x43d
push 0x21b
push 0x1910
push 0x15f4
push 0x73d
push 0x4e0
push 0x153b
push 0x31f
push 0x2564
call dword [0xadb134]
xor ebx, ebx
inc ebx
push 4
pop esi
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc8], 0
mov dword [ebp - 4], esi
cmp dword [ebp - 0x1c], 0x51c5
jge 0x47c80f
mov edx, 0xac52cc
mov ecx, 0xad8758
call fcn.0043fcc4
or dword [ebp - 4], 0xffffffff
push 2
pop edi
jmp 0x47c83f
inc dword [ebp - 0x18]
xor eax, eax
jmp 0x47c663
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x20
je 0x47c87b
mov dword [ebp - 0x30], eax
jmp 0x47c871
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47c86e
push eax
push ebx
push ebx
push eax
call dword [0xadb2c4]
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jle 0x47c859
inc dword [ebp - 0x28]
jmp 0x47c84e
push 4
or esi, 0xffffffff
pop edi
lea ecx, [ebp - 0x764]
call fcn.0043e505
mov dword [ebp - 0x50], 0x5c7a00f4
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x40], 0xfffffff8
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], al
je 0x47c8b0
push eax
call dword [0xadb3b4]
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47c8c1
push eax
push eax
call dword [0xadb380]
mov dword [ebp - 0x44], 0xe4a6f444
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x38], 0x2443250e
mov dword [ebp - 0x58], 0xab274bf9
push edi
lea ecx, [ebp - 0x458]
call fcn.0043e433
mov dword [ebp - 0x3c], 0x362d
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x30], 0
jmp 0x47c90f
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x458]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jl 0x47c8fc
mov byte [ebp - 0x29], 0
cmp byte [ebp - 0x29], 0
je 0x47c92e
push 0x1d40
push 0xda4
call dword [0xadb52c]
mov esi, dword [ebp - 0x458]
mov ecx, dword [esi + 0xc]
xor eax, eax
cmp dword [esi + 4], ecx
sete al
add eax, ecx
jne 0x47c947
test ecx, ecx
je 0x47c949
mov ecx, ebx
mov eax, dword [ebp - 0x3c]
imul eax, ecx
cmp eax, 6
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x20]
dec dword [ebp - 0x20]
cmp eax, ecx
jle 0x47c963
mov eax, ebx
jmp 0x47c965
xor eax, eax
mov dword [ebp - 0x38], 0
mov edx, dword [ebp - 0x58]
add edx, dword [ebp - 0x38]
mov edi, 0xf1448112
cmp edi, eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esi + 0xc], ecx
lea ecx, [ebp - 0x458]
call fcn.0043e505
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x64], 0x99e885dc
mov dword [ebp - 0x1c], 0xf2d6273
mov dword [ebp - 0x58], 0xbae5
push 3
lea ecx, [ebp - 0x898]
call fcn.0043e433
mov dword [ebp - 0x18], 0
push 2
pop esi
jmp 0x47c9d6
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc0], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x47c9c9
mov dword [ebp - 0x18], 0
jmp 0x47c9f7
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x898]
mov dword [eax + ecx*4], 0x56b8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x47c9e4
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x1c]
dec dword [ebp - 0x1c]
cmp edx, eax
jle 0x47ca18
mov ecx, ebx
jmp 0x47ca1a
xor ecx, ecx
mov eax, dword [ebp - 0xc0]
add eax, ecx
neg eax
sbb eax, eax
inc eax
mov ecx, 0xffff
cmp ecx, eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
cmp edx, 0x7c71
setge cl
neg ecx
xor eax, eax
cmp ecx, ebx
setl al
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
dec eax
imul eax, dword [ebp - 0xbc]
add eax, 0xfffffff6
mov ecx, dword [ebp - 0x30]
add ecx, eax
je 0x47cb5e
mov dword [ebp - 0x18], 0x98c5
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jg 0x47cb25
mov dword [ebp - 0x38], 0x67a9
mov dword [ebp - 0x44], eax
jmp 0x47cac0
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x38], 0xd6c8400b
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xc0]
push 3
pop ecx
sub ecx, eax
add ecx, dword [ebp - 0x38]
mov dword [ebp - 0x38], ecx
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], ebx
jle 0x47ca9a
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0xc0]
cmp dword [ebp - 0x44], 0
je 0x47cafd
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x44]
imul ecx, dword [ebp - 0x1c], 9
mov eax, dword [ebp - 0xc0]
add ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xc0], ecx
mov eax, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x50]
xor ecx, ecx
cmp eax, 0x7178
setg cl
mov dword [ebp - 0x44], ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
push 0
pop eax
jle 0x47ca8e
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
jg 0x47cb90
jmp 0x47cb31
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47cb46
push eax
push 0x776
call dword [0xadb56c]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc0], 0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x47cb2f
jmp 0x47cb90
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x47cb8a
mov dword [ebp - 0x30], eax
jmp 0x47cb82
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47cb7f
push eax
push ebx
push ebx
push eax
call dword [0xadb2c4]
xor eax, eax
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jle 0x47cb6a
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x20
jne 0x47cb65
lea ecx, [ebp - 0x898]
call fcn.0043e505
push ebx
lea ecx, [ebp - 0x464]
call fcn.0043e433
mov dword [ebp - 0x28], 0
jmp 0x47cbc3
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x464]
mov dword [eax + ecx*4], 0xd1e1
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jl 0x47cbb0
mov dword [ebp - 0x38], 0x3899
cmp dword [ebp - 0x38], 0x3be5
jle 0x47cc06
xor esi, esi
xor edi, edi
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
cmp edi, 0x4e6f
jl 0x47cbdc
inc esi
cmp esi, 0x3181
jl 0x47cbda
mov edi, 0xf1448112
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], al
je 0x47cc2c
push 0x130c
push 0x103f
push eax
push eax
push 0x10d1
push 0x607
call dword [0xadb570]
mov dword [ebp - 4], 6
cmp dword [ebp - 0x38], 0x3857
jge 0x47cc4b
mov edx, 0xac52e4
mov ecx, 0xad8758
call fcn.0043fcc4
or dword [ebp - 4], 0xffffffff
jmp 0x47cc77
mov eax, dword [ebp - 0x464]
and dword [eax], 0
lea ecx, [ebp - 0x464]
call fcn.0043e505
mov dword [ebp - 0x4c], 0x5c7a00f4
push 3
lea ecx, [ebp - 0x77c]
call fcn.0043e433
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 3
jge 0x47ccc1
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x77c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x47ccaa
xor eax, eax
mov byte [ebp - 0x29], al
mov dword [ebp - 0x38], 0x3e60
cmp dword [ebp - 0x38], 0x3e85
jle 0x47cd05
mov esi, eax
mov edi, eax
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
cmp edi, 0x5beb
jl 0x47ccd8
inc esi
cmp esi, 0x7e78
push 0
pop eax
jl 0x47ccd6
mov edi, 0xf1448112
cmp byte [ebp - 0x29], 0
je 0x47cd2a
push 0x21bd
push 0xc61
push 0x18ab
push 0xd07
push 0x607
call dword [0xadb13c]
mov dword [ebp - 4], 8
cmp dword [ebp - 0x38], 0x3e2a
jge 0x47cd49
mov edx, 0xac5350
mov ecx, 0xad8758
call fcn.0043fcc4
or dword [ebp - 4], 0xffffffff
jmp 0x47cd75
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], al
je 0x47ce26
mov dword [ebp - 0x38], 0x5919
cmp dword [ebp - 0x38], 0x5c71
jle 0x47cdd3
mov ebx, eax
mov esi, eax
mov edi, eax
lea ecx, [edi + esi]
mov eax, ebx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
cmp edi, 0x6625
jl 0x47cd99
inc esi
cmp esi, 0x5ae2
push 0
pop eax
jl 0x47cd97
inc ebx
cmp ebx, 0x7958
jl 0x47cd95
mov edi, 0xf1448112
xor ebx, ebx
inc ebx
push eax
push eax
call dword [0xadb2cc]
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x38], 0x55de
jge 0x47cdfa
mov edx, 0xac5378
mov ecx, 0xad8758
call fcn.0043fcc4
or dword [ebp - 4], 0xffffffff
jmp 0x47ce26
lea ecx, [ebp - 0x77c]
call fcn.0043e505
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x60], 0xe4a6f444
mov dword [ebp - 0x24], ebx
push ebx
lea ecx, [ebp - 0x394]
call fcn.0043e433
mov dword [ebp - 0x3c], 0xe2ff5ff7
mov dword [ebp - 0x28], 0
jmp 0x47ce6d
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x394]
mov dword [eax + ecx*4], 0xfa9e
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jl 0x47ce5a
mov dword [ebp - 0x38], 0x313d
cmp dword [ebp - 0x38], 0x3398
jle 0x47cef4
xor ecx, ecx
mov dword [ebp - 0x28], ecx
xor edi, edi
xor esi, esi
xor ebx, ebx
mov eax, ebx
xor eax, esi
or eax, edi
or eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0xd88]
call fcn.00401a03
pop ecx
pop ecx
mov ecx, eax
call fcn.0043e313
push eax
call fcn.004945f7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xd88]
call fcn.0043e80f
inc ebx
cmp ebx, 0x4784
mov ecx, dword [ebp - 0x28]
jl 0x47ce8d
inc esi
cmp esi, 0x1e4f
jl 0x47ce8b
inc edi
cmp edi, 0x4f4c
jl 0x47ce89
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x4c39
jl 0x47ce87
mov edi, 0xf1448112
xor ebx, ebx
inc ebx
mov byte [ebp - 0x29], 0
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x38], 0x3055
jge 0x47cf13
push 0xac53b0
call fcn.004945f7
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x47cf43
xor eax, eax
cmp byte [ebp - 0x29], al
je 0x47cf54
push eax
push eax
push eax
push eax
call dword [0xadb2ac]
mov dword [ebp - 0x24], 0
jmp 0x47d0bc
push 3
lea ecx, [ebp - 0x644]
call fcn.0043e433
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x38], 0x6b5cfda6
mov dword [ebp - 0x18], 0
push 4
pop ecx
jmp 0x47cf94
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x164], 0xc62e0897
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x47cf83
mov dword [ebp - 0x18], 0
jmp 0x47cfb5
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x644]
mov dword [eax + ecx*4], 0x9f6d4a0d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x47cfa2
dec dword [ebp - 0x15c]
mov eax, dword [ebp - 0x15c]
je 0x47d097
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, 0xbbd1
sub ecx, eax
mov eax, dword [ebp - 0x15c]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x15c]
xor ebx, ebx
cmp edx, eax
setge bl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp ebx, eax
setne cl
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setle dl
xor ecx, ecx
cmp edx, 3
setle cl
mov eax, dword [ebp - 0x394]
sub ecx, dword [eax]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0x4a9c79eb
je 0x47d04d
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x47d04d
cmp dword [ebp - 0x20], eax
jne 0x47d04d
mov edx, eax
jmp 0x47d050
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x15c]
xor ebx, ebx
cmp ecx, eax
setne bl
mov eax, dword [ebp - 0x644]
mov dword [eax + 4], ebx
mov ecx, dword [ebp - 0x15c]
add ecx, edx
mov eax, dword [ebp - 0x158]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, ebx
mov eax, dword [ebp - 0x394]
xor ebx, ebx
inc ebx
sub edx, dword [eax]
je 0x47d097
mov ecx, ebx
xor eax, eax
jmp 0x47d09b
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47d0ae
push eax
call dword [0xadb378]
lea ecx, [ebp - 0x644]
call fcn.0043e505
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe6
jl 0x47cf60
lea ecx, [ebp - 0x394]
call fcn.0043e505
mov dword [ebp - 0x30], 9
mov dword [ebp - 0x28], 0xfff8
mov dword [ebp - 0x38], 0x7e4a906
push 2
lea ecx, [ebp - 0x5b4]
call fcn.0043e433
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x38], 0x71a
push 4
lea ecx, [ebp - 0x47c]
call fcn.0043e433
mov dword [ebp - 0x18], 0
push 2
pop edx
jmp 0x47d125
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5b4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x47d116
mov dword [ebp - 0x18], 0
push 4
pop edx
jmp 0x47d149
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x47c]
mov dword [eax + ecx*4], 0xb11f3813
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x47d136
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], 0xd422
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x5b4]
mov dword [eax + 4], ecx
test ecx, ecx
je 0x47d178
cmp dword [ebp - 0x20], 0
je 0x47d178
mov eax, ebx
jmp 0x47d17a
xor eax, eax
mov edx, dword [ebp - 0x28]
imul edx, eax
neg edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
test ecx, ecx
setle al
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
sub ecx, eax
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x47c]
mov dword [eax + 8], ecx
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], al
je 0x47d1d0
push eax
push eax
push eax
push eax
push eax
call dword [0xadb038]
lea ecx, [ebp - 0x47c]
call fcn.0043e505
lea ecx, [ebp - 0x5b4]
call fcn.0043e505
mov dword [ebp - 0x40], 0xfffffff8
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], al
je 0x47d200
push eax
call dword [0xadb3b4]
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47d213
push eax
push eax
call dword [0xadb380]
xor eax, eax
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x20], 0x2b5
cmp dword [ebp - 0x20], 0x573
jle 0x47d2b2
push eax
push 0x1451
push 0x948
push 0x4da
call dword [0xadb08c]
xor ecx, ecx
mov dword [ebp - 0x28], ecx
xor ebx, ebx
mov dword [ebp - 0x38], ebx
xor esi, esi
xor edi, edi
mov eax, ebx
cdq
idiv esi
mov ebx, ecx
mov ecx, edx
sar ebx, cl
mov eax, ebx
or eax, edi
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
cmp edi, 0x507f
jl 0x47d259
inc esi
cmp esi, 0x24fb
mov ebx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
jl 0x47d24c
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, 0x7a2d
jl 0x47d24a
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0xe32
jl 0x47d245
push 0
push 0x25ec
call dword [0xadb4c0]
mov edi, 0xf1448112
xor ebx, ebx
inc ebx
or esi, 0xffffffff
mov dword [ebp - 0x38], 0x2443250e
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x20], 0xa7
jge 0x47d2d8
mov edx, 0xac5418
mov ecx, 0xad8758
call fcn.0043fcc4
mov dword [ebp - 4], esi
jmp 0x47d305
push 4
pop eax
mov dword [ebp - 0x58], 0xab274bf9
push eax
lea ecx, [ebp - 0x494]
call fcn.0043e433
mov dword [ebp - 0x3c], 0x362d
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], 0
push 4
pop edx
jmp 0x47d344
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x494]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jl 0x47d331
mov byte [ebp - 0x29], 0
cmp byte [ebp - 0x29], 0
je 0x47d363
push 0x1d40
push 0xda4
call dword [0xadb52c]
mov esi, dword [ebp - 0x494]
mov ecx, dword [esi + 0xc]
xor eax, eax
cmp dword [esi + 4], ecx
sete al
add eax, ecx
jne 0x47d37c
test ecx, ecx
je 0x47d37e
mov ecx, ebx
mov eax, dword [ebp - 0x3c]
imul eax, ecx
cmp eax, 6
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x20]
dec dword [ebp - 0x20]
cmp eax, ecx
jle 0x47d398
mov eax, ebx
jmp 0x47d39a
xor eax, eax
mov dword [ebp - 0x38], 0
mov edx, dword [ebp - 0x58]
add edx, dword [ebp - 0x38]
cmp edi, eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esi + 0xc], ecx
lea ecx, [ebp - 0x494]
call fcn.0043e505
mov dword [ebp - 0x50], 8
mov dword [ebp - 0x38], 0x6a40
cmp dword [ebp - 0x38], 0x6da9
jle 0x47d437
push 0
call dword [0xadb3d4]
xor ebx, ebx
xor esi, esi
xor edi, edi
mov eax, edi
or eax, esi
or eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xb6c]
call fcn.00401a03
pop ecx
pop ecx
mov ecx, eax
call fcn.0043e313
push eax
call fcn.004945f7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb6c]
call fcn.0043e80f
inc edi
cmp edi, 0x2fcf
jl 0x47d3e6
inc esi
cmp esi, 0x50cc
jl 0x47d3e4
inc ebx
cmp ebx, 0x17ee
jl 0x47d3e2
xor ebx, ebx
inc ebx
mov dword [ebp - 0x28], 0xc0ae
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x38], 0x687a
jge 0x47d459
push 0xac5478
call fcn.004945f7
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x47d484
push 2
pop edi
mov dword [ebp - 0x40], ebx
dec dword [ebp - 0x28]
mov dword [ebp - 0x28], 6
cmp dword [ebp - 0x28], 0x3b
je 0x47d59a
push 3
lea ecx, [ebp - 0x6bc]
call fcn.0043e433
mov dword [ebp - 0x30], 0
jmp 0x47d4c3
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x6bc]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jl 0x47d4b4
mov eax, dword [ebp - 0x6bc]
mov dword [eax], esi
mov dword [ebp - 0x38], 0x5736
cmp dword [ebp - 0x38], 0x57a9
jle 0x47d52a
xor esi, esi
xor edi, edi
mov eax, edi
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xf8c]
call fcn.00401a03
pop ecx
pop ecx
mov ecx, eax
call fcn.0043e313
push eax
call fcn.004945f7
pop ecx
push 0
push ebx
lea ecx, [ebp - 0xf8c]
call fcn.0043e80f
inc edi
cmp edi, 0x16cf
jl 0x47d4e5
inc esi
cmp esi, 0x7eb
jl 0x47d4e3
or esi, 0xffffffff
xor eax, eax
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], al
je 0x47d541
push eax
push eax
push 0x51e
call dword [0xadb140]
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x38], 0x53e0
jge 0x47d55c
push 0xac54a0
call fcn.004945f7
pop ecx
mov dword [ebp - 4], esi
jmp 0x47d584
push 2
pop edi
lea ecx, [ebp - 0x6bc]
call fcn.0043e505
inc dword [ebp - 0x28]
jmp 0x47d494
mov dword [ebp - 0x40], 0x99e885dc
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], 0x9e1a0e1c
mov dword [ebp - 0x24], edi
jmp 0x47d5c7
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47d5c4
push eax
call dword [0xadb34c]
xor eax, eax
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x1c
je 0x47d5b2
mov dword [ebp - 0x24], 0xffffffe9
cmp dword [ebp - 0x24], 0xfffffff7
jle 0x47d7d9
mov dword [ebp - 0x44], 0x5e00fe1c
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 8
cmp dword [ebp - 0x44], 0xffffffe7
jne 0x47d707
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x54], 9
cmp dword [ebp - 0x54], 0xffffffef
jne 0x47d6b0
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], 0xfffffff1
jmp 0x47d639
mov byte [ebp - 0x29], al
cmp byte [ebp - 0x29], 0
je 0x47d636
push 0x1639
push eax
push eax
push 9
call dword [0xadb53c]
xor eax, eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jne 0x47d61c
mov dword [ebp - 0x18], 0x14
jmp 0x47d69a
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x58], 0x9c90e69c
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x54]
imul ecx, dword [ebp - 0x44], 0x8cb6
mov eax, dword [ebp - 0x54]
xor edx, edx
cmp ecx, eax
setne dl
add edx, dword [ebp - 0x20]
jne 0x47d673
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x58], eax
dec dword [ebp - 0x18]
push 0
pop eax
cmp dword [ebp - 0x18], 0xfffffff1
jg 0x47d647
dec dword [ebp - 0x54]
cmp dword [ebp - 0x54], 0xffffffef
push 0
pop eax
je 0x47d610
cmp dword [ebp - 0x30], eax
je 0x47d6e1
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, 0xcbfb
setle cl
cmp ecx, 0xe094bf7d
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x54]
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x47d6e9
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x48], eax
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xffffffe7
push 0
pop eax
je 0x47d5f9
mov byte [ebp - 0x29], al
mov dword [ebp - 0x20], 0x7e8b
cmp dword [ebp - 0x20], 0x81e3
jle 0x47d775
push 0x21c4
push eax
push 0xa22
call dword [0xadb4bc]
xor ebx, ebx
mov dword [ebp - 0x38], ebx
xor esi, esi
xor edi, edi
mov eax, ebx
cdq
idiv esi
mov ebx, edx
mov eax, edi
or eax, ebx
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
cmp edi, 0x6483
jl 0x47d73b
inc esi
cmp esi, 0x5313
mov ebx, dword [ebp - 0x38]
jl 0x47d732
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, 0x63d6
jl 0x47d730
xor eax, eax
xor ebx, ebx
inc ebx
push 2
pop edi
cmp byte [ebp - 0x29], 0
je 0x47d782
push eax
call dword [0xadb148]
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x20], 0x7ad1
jge 0x47d7a1
mov edx, 0xac54fc
mov ecx, 0xad8758
call fcn.0043fcc4
or esi, 0xffffffff
mov dword [ebp - 4], esi
jmp 0x47d7cf
inc dword [ebp - 0x24]
xor eax, eax
jmp 0x47d5d4
mov dword [ebp - 0x20], 0xf2d6273
mov dword [ebp - 0x38], 0x7cefa9d1
movdqa xmm0, xmmword [0xac8290]
movdqu xmmword [ebp - 0x978], xmm0
lea ecx, [ebp - 0x978]
lea eax, [ebp - 0x968]
push ecx
push eax
push ecx
lea ecx, [ebp - 0x848]
call fcn.0043e4df
mov dword [ebp - 0x28], 0x50b5f0b1
xor eax, eax
cmp dword [ebp - 0x28], 0x9576
jle 0x47d82a
cmp dword [ebp - 0x28], eax
mov edx, eax
je 0x47d82c
mov edx, ebx
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x848]
mov dword [eax], ecx
xor eax, eax
cmp ecx, edx
setne al
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
sub eax, 8
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x848]
call fcn.0043e505
mov dword [ebp - 0x5c], 0xbae5
mov dword [ebp - 0x48], 0x4ad3
mov dword [ebp - 0x38], 0xfffffff7
mov dword [ebp - 0x18], 0
jmp 0x47d88d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb0], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x47d880
mov dword [ebp - 0x18], 0
jmp 0x47d8ac
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x74c], 5
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x47d89b
mov dword [ebp - 0xb0], 0
jmp 0x47d922
mov dword [ebp - 0x28], 0x6917ab6d
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, esi
setle cl
inc ecx
cmp ecx, dword [ebp - 0x28]
jne 0x47d8ea
mov eax, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x48]
add eax, 0x3718bd85
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x748], ecx
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0xb0]
add eax, edx
mov ecx, dword [ebp - 0x28]
imul ecx, eax
mov dword [ebp - 0x3c], ecx
inc dword [ebp - 0xb0]
cmp dword [ebp - 0xb0], ebx
je 0x47d8bd
push 3
lea ecx, [ebp - 0x8e0]
call fcn.0043e433
mov dword [ebp - 0x38], 0xfc02
mov dword [ebp - 0x28], 0x3e22
cmp dword [ebp - 0x28], 0x3e8e
jle 0x47d98f
xor esi, esi
mov dword [ebp - 0x48], esi
xor ebx, ebx
mov dword [ebp - 0x38], 0x74df
mov edi, ebx
mov esi, 0x85d
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
dec esi
jne 0x47d963
mov esi, dword [ebp - 0x48]
add ebx, esi
dec dword [ebp - 0x38]
jne 0x47d95c
inc esi
mov dword [ebp - 0x48], esi
cmp esi, 0x6bd0
jl 0x47d953
xor ebx, ebx
inc ebx
mov dword [ebp - 0x3c], 0
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x28], 0x3ca5
jge 0x47d9b5
mov edx, 0xac5540
mov ecx, 0xad8758
call fcn.0043fcc4
or dword [ebp - 4], 0xffffffff
jmp 0x47d9dc
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x47d9f4
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x9ec], 0xe58d020b
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x47d9e3
mov dword [ebp - 0x38], 0xda4d073f
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x9ec], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x28], 0x5106
cmp dword [ebp - 0x28], 0x5220
jle 0x47da54
xor edi, edi
xor esi, esi
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc esi
cmp esi, 0x5d07
jl 0x47da21
inc edi
cmp edi, 0x5008
jl 0x47da1f
xor eax, eax
push eax
push eax
push eax
push 0x249b
call dword [0xadb14c]
mov dword [ebp - 0x48], 0x653d
cmp dword [ebp - 0x48], 0x670f
jle 0x47daa8
xor ebx, ebx
mov dword [ebp - 0x38], ebx
xor esi, esi
xor edi, edi
mov dword [ebp - 0x3c], ebx
mov ecx, esi
shl ebx, cl
mov eax, ebx
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc edi
cmp edi, 0x7ea7
jl 0x47da74
inc esi
cmp esi, 0x391c
mov ebx, dword [ebp - 0x38]
jl 0x47da6b
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, 0x3eb8
jl 0x47da69
mov byte [ebp - 0x29], 0
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x48], 0x61d4
jge 0x47dacb
mov edx, 0xac5608
mov ecx, 0xad8758
call fcn.0043fcc4
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
xor eax, eax
xor edi, edi
inc edi
jmp 0x47dafd
push 2
pop esi
cmp byte [ebp - 0x29], 0
je 0x47db0d
push eax
call dword [0xadb3a8]
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x28], 0x4e2f
jge 0x47db2c
mov edx, 0xac55a0
mov ecx, 0xad8758
call fcn.0043fcc4
mov dword [ebp - 4], ebx
jmp 0x47db55
xor eax, eax
mov dword [ebp - 0x38], 0x53fc
cmp dword [ebp - 0x38], 0x5774
jle 0x47dbca
mov ecx, eax
mov dword [ebp - 0x28], eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [esi + edi]
and eax, ebx
and eax, ecx
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc esi
cmp esi, 0x486c
mov ecx, dword [ebp - 0x28]
jl 0x47db72
inc edi
cmp edi, 0x22f6
push 0
pop eax
jl 0x47db70
inc ebx
cmp ebx, 0x73c6
jl 0x47db6e
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x1cae
jl 0x47db6c
push 0xfe1
push 0x19cc
push eax
call dword [0xadb554]
xor edi, edi
inc edi
push 2
pop esi
mov dword [ebp - 0x18], 0
jmp 0x47dbe0
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xa0], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x47dbd3
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x38], 0x52f2
jge 0x47dc04
mov edx, 0xac5684
mov ecx, 0xad8758
call fcn.0043fcc4
or dword [ebp - 4], 0xffffffff
jmp 0x47dc30
mov ebx, 0xffff
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x47dc4f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x8e0]
mov dword [eax + ecx*4], 0x56b8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x47dc3c
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x20]
dec dword [ebp - 0x20]
cmp edx, eax
jle 0x47dc70
mov ecx, edi
jmp 0x47dc72
xor ecx, ecx
mov eax, dword [ebp - 0xa0]
add eax, ecx
neg eax
sbb eax, eax
inc eax
cmp ebx, eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
cmp edx, 0x7c71
setge cl
neg ecx
xor eax, eax
cmp ecx, edi
setl al
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x4c]
dec eax
imul eax, dword [ebp - 0x9c]
add eax, 0xfffffff6
mov ecx, dword [ebp - 0x30]
add ecx, eax
je 0x47fbe8
mov dword [ebp - 0x38], 0xfc02
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], eax
jmp 0x47dcee
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x9e0], 0xe58d020b
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x47dcdd
mov dword [ebp - 0x38], 0xda4d073f
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x9e0], edi
mov dword [ebp - 0x3c], edi
xor eax, eax
mov byte [ebp - 0x29], al
mov dword [ebp - 0x1c], 0x7a96
cmp dword [ebp - 0x1c], 0x7b8e
jle 0x47dd94
mov ebx, eax
mov dword [ebp - 0x48], eax
mov esi, eax
mov dword [ebp - 0x38], eax
mov edi, eax
mov dword [ebp - 0x3c], ebx
mov ecx, esi
shl ebx, cl
mov eax, ebx
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xb9c]
call fcn.00401a03
pop ecx
pop ecx
mov ecx, eax
call fcn.0043e313
push eax
call fcn.004945f7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb9c]
call fcn.0043e80f
inc edi
cmp edi, 0x792d
jl 0x47dd2f
cmp byte [ebp - 0x29], 0
je 0x47dda1
mov dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 0x20
je 0x48044b
push edi
lea ecx, [ebp - 0x1e0]
call fcn.0043e433
mov dword [ebp - 0x44], 0x1188e17b
mov dword [ebp - 0x48], 0x717f4039
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x18], 0
jmp 0x47fc32
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1e0]
mov dword [eax + ecx*4], 9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x47fc1f
mov dword [ebp - 0x18], 0
jmp 0x47fc51
lea ecx, [ebp - 0x8e0]
call fcn.0043e505
mov dword [ebp - 0x28], 0x9c17
mov dword [ebp - 0x44], 0xe92eda8e
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x34], 0x1a7a81a8
mov dword [ebp - 0x20], 0x6488a973
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x8c], 6
mov dword [ebp - 0x88], 6
mov dword [ebp - 0x84], 6
mov dword [ebp - 0x80], 6
or ebx, 0xffffffff
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jge 0x4804cc
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x830], 0x5189
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x4804b4
xor eax, eax
mov dword [ebp - 0x48], 0x2ffe
cmp dword [ebp - 0x48], 0x3027
jle 0x480558
push eax
push eax
push 0x2203
push eax
call dword [0xadb550]
xor ebx, ebx
mov dword [ebp - 0x38], ebx
xor esi, esi
mov dword [ebp - 0x34], esi
xor edi, edi
mov eax, ebx
cdq
idiv esi
mov ebx, edx
mov eax, edi
xor eax, ebx
cdq
push edx
push eax
lea ecx, [ebp - 0xc80]
call fcn.00401a03
pop ecx
pop ecx
mov ecx, eax
call fcn.0043e313
push eax
call fcn.004945f7
pop ecx
push 0
push 1
lea ecx, [ebp - 0xc80]
call fcn.0043e80f
inc edi
cmp edi, 0x1d64
jl 0x4804fd
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x5d85
mov ebx, dword [ebp - 0x38]
jl 0x4804f4
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x28]
je 0x480574
xor eax, eax
cmp dword [ebp - 0x28], eax
je 0x480576
xor eax, eax
mov ecx, eax
xor esi, esi
inc esi
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x34], eax
jne 0x48058a