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

Disassembly:
mov eax, 0x4c73ab
call fcn.004c6ae8
sub esp, 0xd2c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x78], dl
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 4
jge 0x43bb76
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xd28], 0xdf99
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x43bb5d
xor eax, eax
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], eax
jl 0x43bba5
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43bba0
push eax
push eax
push 0x45d
push 0x1576
push eax
call dword [0xade4c8]
xor eax, eax
dec dword [ebp - 0x1c]
jns 0x43bb82
or ebx, 0xffffffff
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x38], 0x1a76a447
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x40c]
call fcn.0043852b
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x43bbe5
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x8c], 0xea75
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x43bbcc
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x43bc07
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40c]
mov dword [eax + ecx*4], 0x5662b132
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x43bbed
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43bc20
push eax
push eax
push eax
push 0x201e
call dword [0xade0a8]
xor eax, eax
mov dword [ebp - 0x28], edi
mov esi, 0xffff
cmp dword [ebp - 0x28], eax
jl 0x43bdfa
jmp 0x43bc35
xor eax, eax
mov dword [ebp - 0x18], 0xd4ea6801
mov dword [ebp - 0x30], eax
push 4
lea ecx, [ebp - 0x538]
call fcn.0043852b
mov dword [ebp - 0x38], 0xfffffff8
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x24], 0
jmp 0x43bc72
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x538]
mov dword [eax + ecx*4], 0xfffe
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x43bc5f
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], 0
jl 0x43bd7b
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x2c], 0x32a831d2
mov dword [ebp - 0x38], 0x7216709e
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x24], 0
jl 0x43bd6d
mov esi, dword [ebp - 0x538]
mov dword [ebp - 0x40], 0xfffffff8
push edi
lea ecx, [ebp - 0x430]
call fcn.0043852b
mov dword [ebp - 0x20], 0
jmp 0x43bcd8
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x430]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x43bcc5
mov dword [ebp - 0x2c], ebx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setne dl
dec edx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x88]
xor ecx, ecx
cmp eax, 0x7d77fc7d
setl cl
xor eax, eax
cmp ecx, 0xf3c5
setle al
cmp eax, 0xffff
jbe 0x43bd36
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x8c]
mov eax, dword [ebp - 0x28]
inc dword [esi + 4]
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov eax, dword [ebp - 0x430]
cmp dword [eax], edi
setne cl
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x430]
call fcn.004385fd
dec dword [ebp - 0x24]
jns 0x43bca9
dec dword [ebp - 0x18]
jns 0x43bc85
mov esi, 0xffff
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x8c]
xor ebx, ebx
test eax, eax
setne bl
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x8c]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x44]
xor ecx, ecx
cmp eax, 0xaf8e
setne cl
xor edx, edx
cmp ecx, 3
setg dl
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x8c]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
imul edx, ebx
mov eax, dword [ebp - 0x40c]
mov dword [eax], edx
lea ecx, [ebp - 0x538]
call fcn.004385fd
dec dword [ebp - 0x28]
push 0xffffffffffffffff
pop ebx
jns 0x43bc33
lea ecx, [ebp - 0x40c]
call fcn.004385fd
mov dword [ebp - 0x24], 0x91a049fe
mov dword [ebp - 0x2c], 0xf1a969ac
mov dword [ebp - 0x24], 0x256915a
mov dword [ebp - 0x30], 0x6d3f
cmp dword [ebp - 0x30], 0x70e7
jle 0x43be84
xor edi, edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x38], 0x417b
xor esi, esi
xor ebx, ebx
lea eax, [ebx + esi]
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xadaa58
call fcn.00438300
inc ebx
cmp ebx, 0x6191
jl 0x43be3d
inc esi
cmp esi, 0x1bab
jl 0x43be3b
dec edi
dec dword [ebp - 0x38]
jne 0x43be39
mov edi, dword [ebp - 0x40]
inc edi
mov dword [ebp - 0x40], edi
cmp edi, 0x2a8c
jl 0x43be2f
call dword [0xade260]
xor edi, edi
inc edi
mov esi, 0xffff
and dword [ebp - 4], 0
cmp dword [ebp - 0x30], 0x6c93
jge 0x43bea0
mov edx, 0xac0798
mov ecx, 0xadaa58
call fcn.0043ab89
or edx, 0xffffffff
mov dword [ebp - 4], edx
xor eax, eax
jmp 0x43bed2
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x43bef0
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x108], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x43bedc
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43bf03
push eax
push eax
call dword [0xade314]
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x43bf78
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43bf2b
xor ebx, ebx
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x108], ebx
jne 0x43bf29
dec dword [ebp - 0x20]
jns 0x43bf18
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43bf73
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x43bf57
xor ebx, ebx
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x108], ebx
jne 0x43bf55
dec dword [ebp - 0x1c]
jns 0x43bf44
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43bf6e
push eax
push 0x1f7c
call dword [0xade0f8]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x43bf33
dec dword [ebp - 0x24]
jns 0x43bf0b
mov byte [ebp - 0x4d], al
mov dword [ebp - 0x1c], 0x4c405b40
push 3
lea ecx, [ebp - 0x448]
call fcn.0043852b
push 2
lea ecx, [ebp - 0x2b8]
call fcn.0043852b
push 2
lea ecx, [ebp - 0x6d0]
call fcn.0043852b
mov dword [ebp - 0x54], 0
jmp 0x43bfc3
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0xa0], 0x7b8f5f49
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], edi
jl 0x43bfb2
mov dword [ebp - 0x54], 0
jmp 0x43bfe2
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0x8e8], 4
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 3
jl 0x43bfd1
mov dword [ebp - 0x54], 0
jmp 0x43c004
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x448]
mov dword [eax + ecx*4], 0xc1d10227
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 3
jl 0x43bff1
mov dword [ebp - 0x54], 0
jmp 0x43c026
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x2b8]
mov dword [eax + ecx*4], 0x2b5f7919
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 2
jl 0x43c013
mov dword [ebp - 0x54], 0
jmp 0x43c044
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x6d0]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 2
jl 0x43c035
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0xa0], 0
jne 0x43c081
mov dword [ebp - 0x8e0], 0xaee5a986
mov eax, dword [ebp - 0x448]
xor ebx, ebx
mov dword [eax + 8], ebx
cmp dword [ebp - 0xa0], ebx
jg 0x43c081
mov eax, dword [ebp - 0x2b8]
cmp dword [eax], ebx
jne 0x43c081
xor edx, edx
jmp 0x43c083
mov edx, edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
sub ecx, edx
mov eax, dword [ebp - 0x2b8]
imul ecx, dword [eax]
xor eax, eax
cmp ecx, 0x47941ce3
setg al
mov dword [ebp - 0xa0], eax
lea ecx, [ebp - 0x6d0]
call fcn.004385fd
lea ecx, [ebp - 0x2b8]
call fcn.004385fd
lea ecx, [ebp - 0x448]
call fcn.004385fd
cmp byte [ebp - 0x4d], 0
je 0x43c0da
push 0x11d7
call dword [0xade0ac]
mov dword [ebp - 0x38], 0x1e69
cmp dword [ebp - 0x38], 0x2031
jle 0x43c167
xor ecx, ecx
mov dword [ebp - 0x24], ecx
xor edi, edi
xor esi, esi
and dword [ebp - 0x30], 0
xor ebx, ebx
mov eax, esi
cdq
idiv dword [ebp - 0x30]
lea eax, [edi + ecx]
xor eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0x9a4]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x9a4]
call fcn.00438ad9
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x555e
mov ecx, dword [ebp - 0x24]
jl 0x43c0f9
inc esi
cmp esi, 0x36b
jl 0x43c0f3
inc edi
cmp edi, 0x5aaa
jl 0x43c0f1
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x1787
jl 0x43c0ef
xor edi, edi
inc edi
mov esi, 0xffff
mov dword [ebp - 0x24], 0x256915a
mov dword [ebp - 4], 2
cmp dword [ebp - 0x38], 0x1aa6
jge 0x43c189
push 0xac07bc
call fcn.004b1347
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x43c1b9
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x43c1d7
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xf0], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x43c1c3
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43c1ea
push eax
push eax
call dword [0xade314]
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x43c25f
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43c212
xor ebx, ebx
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0xf0], ebx
jne 0x43c210
dec dword [ebp - 0x20]
jns 0x43c1ff
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43c25a
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x43c23e
xor ebx, ebx
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xf0], ebx
jne 0x43c23c
dec dword [ebp - 0x1c]
jns 0x43c22b
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43c255
push eax
push 0x1f7c
call dword [0xade0f8]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x43c21a
dec dword [ebp - 0x24]
jns 0x43c1f2
mov dword [ebp - 0x24], 0xffffffe6
jmp 0x43c296
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], 0x5d870a32
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
shl eax, 2
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x24]
push 0
pop eax
cmp dword [ebp - 0x24], 0x11
jge 0x43c268
mov dword [ebp - 0x24], 0x399841b3
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x44], 0x23cd
cmp dword [ebp - 0x44], 0x24fa
jle 0x43c334
xor esi, esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x38], 0x7781
xor edi, edi
xor ebx, ebx
lea eax, [esi + edi]
cdq
push edx
push eax
lea ecx, [ebp - 0xa1c]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xa1c]
call fcn.00438ad9
inc edi
cmp edi, 0x5914
jl 0x43c2d4
dec esi
dec dword [ebp - 0x38]
jne 0x43c2d0
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0xbf7
jl 0x43c2c6
push 0x1756
call dword [0xade12c]
xor edi, edi
inc edi
mov esi, 0xffff
mov dword [ebp - 0x48], 0x12bad479
mov dword [ebp - 4], 4
cmp dword [ebp - 0x44], 0x2247
jge 0x43c356
push 0xac0828
call fcn.004b1347
pop ecx
or ebx, 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x43c386
push 3
lea ecx, [ebp - 0x300]
call fcn.0043852b
mov dword [ebp - 0x38], 0x227283a3
mov dword [ebp - 0x38], 0x51abe719
mov dword [ebp - 0x18], 0
jmp 0x43c3bb
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x274], 0x9ed02e88
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x43c3aa
mov dword [ebp - 0x18], 0
jmp 0x43c3dd
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x300]
mov dword [eax + ecx*4], 0x411e69d0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x43c3ca
mov dword [ebp - 0x24], 0xffffffec
jmp 0x43c520
mov dword [ebp - 0x28], 0x57102d14
mov dword [ebp - 0x1c], 0x3cc47d1a
mov dword [ebp - 0x28], 0
jmp 0x43c513
mov dword [ebp - 0x44], 0xd5a5
mov dword [ebp - 0x2c], 0x79b69b2e
mov dword [ebp - 0x38], 0x17473468
mov dword [ebp - 0x38], 0x829ed890
mov dword [ebp - 0x40], esi
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x270], eax
test eax, eax
jne 0x43c467
cmp dword [ebp - 0x274], eax
jne 0x43c467
mov eax, dword [ebp - 0x270]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edi
setl cl
cmp ecx, ebx
sbb eax, eax
neg eax
sub eax, 0x21237857
mov dword [ebp - 0x26c], eax
mov eax, dword [ebp - 0x1c]
dec dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setne dl
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, 0xb38b4b72
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x28]
jge 0x43c495
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
xor eax, eax
cmp dword [ebp - 0x1c], eax
jne 0x43c4a9
cmp dword [ebp - 0x26c], eax
mov ecx, eax
je 0x43c4ab
mov ecx, edi
mov eax, dword [ebp - 0x300]
mov dword [eax], ecx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x28], 0
jne 0x43c505
mov ecx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp dword [ecx + 4], eax
setge dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setg cl
imul eax, ecx, 0x56e
test eax, eax
jne 0x43c4ea
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
xor eax, eax
cmp dword [ebp - 0x44], eax
mov ecx, eax
je 0x43c507
mov ecx, edi
mov eax, dword [ebp - 0x20]
imul eax, ecx
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffed
je 0x43c409
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xb
jg 0x43c3ef
lea ecx, [ebp - 0x300]
call fcn.004385fd
mov dword [ebp - 0x40], 0x55d3
cmp dword [ebp - 0x40], 0x5600
jle 0x43c593
xor esi, esi
xor edi, edi
mov dword [ebp - 0x38], 0x67cc
xor ebx, ebx
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xb90]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xb90]
call fcn.00438ad9
add edi, esi
dec dword [ebp - 0x38]
jne 0x43c552
inc esi
cmp esi, 0x721f
jl 0x43c547
xor edi, edi
inc edi
mov dword [ebp - 4], 6
cmp dword [ebp - 0x40], 0x544d
jge 0x43c5ae
push 0xac08b8
call fcn.004b1347
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x43c5dd
mov dword [ebp - 0x34], 0xaa84cbed
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0x6cd04cd0
mov dword [ebp - 0x2c], 0xfe57b6a6
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 3
jge 0x43c616
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xc0], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x43c603
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x38], 0x20859496
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, 0x82ba
setle cl
add ecx, 0x7d2a7e9f
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0xbc]
xor ecx, ecx
cmp eax, 2
setg cl
mov eax, dword [ebp - 0xbc]
sub ecx, eax
mov eax, dword [ebp - 0xbc]
add eax, ecx
xor ecx, ecx
cmp eax, 0x218f0ed6
setne cl
xor edx, edx
cmp ecx, 7
setl dl
mov eax, dword [ebp - 0xbc]
xor ecx, ecx
cmp edx, eax
setge cl
mov eax, dword [ebp - 0xbc]
sub ecx, eax
mov eax, dword [ebp - 0xbc]
add ecx, eax
mov eax, dword [ebp - 0xbc]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0xc0]
xor ebx, ebx
cmp edx, eax
setge bl
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
cmp ebx, eax
setne cl
xor eax, eax
cmp ecx, 0xfffffffb
setge al
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x18], 0x91a049fe
mov dword [ebp - 0x30], 0x45ef
cmp dword [ebp - 0x30], 0x4630
jle 0x43c712
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x38], 0x2aa7
xor esi, esi
mov eax, ebx
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xadaa58
call fcn.00438300
inc esi
cmp esi, 0x171b
jl 0x43c6df
add ebx, edi
dec dword [ebp - 0x38]
jne 0x43c6dd
inc edi
cmp edi, 0x58a4
jl 0x43c6d4
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x34], 0xd41e5596
push 3
lea ecx, [ebp - 0x6e8]
call fcn.0043852b
mov dword [ebp - 0x38], 0x897
push edi
lea ecx, [ebp - 0x768]
call fcn.0043852b
mov dword [ebp - 0x40], 0xb4c8f0d0
mov dword [ebp - 0x18], 0
jmp 0x43c75c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6e8]
mov dword [eax + ecx*4], 0xc2039807
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x43c749
mov dword [ebp - 0x18], 0
jmp 0x43c77e
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x768]
mov dword [eax + ecx*4], 0xa97963ba
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x43c76b
inc dword [ebp - 0x38]
inc dword [ebp - 0x40]
lea ecx, [ebp - 0x768]
call fcn.004385fd
lea ecx, [ebp - 0x6e8]
call fcn.004385fd
mov dword [ebp - 4], 8
cmp dword [ebp - 0x30], 0x453f
jge 0x43c7be
mov edx, 0xac0918
mov ecx, 0xadaa58
call fcn.0043ab89
mov dword [ebp - 4], esi
jmp 0x43c7e6
mov dword [ebp - 0x2c], 0xf1a969ac
mov dword [ebp - 0x3c], 0xc3099cf
push 2
lea ecx, [ebp - 0x3b4]
call fcn.0043852b
mov dword [ebp - 0x24], 0xfffffff7
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x43c823
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x68], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x43c812
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x43c847
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3b4]
mov dword [eax + ecx*4], 0x1f7d9671
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x43c82c
xor eax, eax
mov dword [ebp - 0x68], 0xffffffec
jmp 0x43c889
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43c886
push 0x1cc8
push eax
push 0x5e5
push 0x1227
push 0x26a0
push eax
push 0xf3f
push 0xb90
push 0x1f5b
call dword [0xade468]
xor eax, eax
inc dword [ebp - 0x68]
cmp dword [ebp - 0x68], 0xffffffed
je 0x43c850
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], eax
jg 0x43c995
push 4
lea ecx, [ebp - 0x2f4]
call fcn.0043852b
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], 4
jge 0x43c8cc
xor ebx, ebx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2f4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x43c8b7
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov dword [ebp - 0x68], 3
mov eax, dword [ebp - 0x3c]
neg eax
sbb eax, eax
neg eax
push 2
pop ecx
sub ecx, eax
mov eax, dword [ebp - 0x3b4]
mov dword [eax], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x2f4]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x3b4]
imul ecx, dword [eax]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x24], 0xffffffe3
jle 0x43c97d
mov ecx, dword [ebp - 0x2f4]
mov dword [ebp - 0x1c], 0x20f30385
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x68], 0x67f5d1cc
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xffffffe3
jg 0x43c937
lea ecx, [ebp - 0x2f4]
call fcn.004385fd
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 0
jle 0x43c89b
lea ecx, [ebp - 0x3b4]
call fcn.004385fd
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x38], 0x1a76a447
push edi
lea ecx, [ebp - 0x55c]
call fcn.0043852b
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x43c9da
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x94], 0xea75
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x43c9c1
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x43c9fc
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x55c]
mov dword [eax + ecx*4], 0x5662b132
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x43c9e2
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43ca15
push eax
push eax
push eax
push 0x201e
call dword [0xade0a8]
xor eax, eax
mov dword [ebp - 0x28], edi
cmp dword [ebp - 0x28], eax
jl 0x43ccf8
mov dword [ebp - 0x18], 0xd4ea6801
mov dword [ebp - 0x30], eax
push 4
lea ecx, [ebp - 0x460]
call fcn.0043852b
mov dword [ebp - 0x38], 0xfffffff8
mov ebx, 0xffff
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x38], 0x18c
cmp dword [ebp - 0x38], 0x4a2
jle 0x43ca87
xor esi, esi
mov edi, esi
mov ebx, 0x7990
mov eax, edi
cdq
push edx
push eax
mov ecx, 0xadaa58
call fcn.00438300
dec edi
dec ebx
jne 0x43ca60
inc esi
cmp esi, 0x613b
jl 0x43ca59
xor edi, edi
inc edi
or esi, 0xffffffff
mov ebx, 0xffff
mov dword [ebp - 0x24], 0
jmp 0x43caa3
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x460]
mov dword [eax + ecx*4], 0xfffe
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x43ca90
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x38], 0xffffff69
jge 0x43cac8
mov edx, 0xac0950
mov ecx, 0xadaa58
call fcn.0043ab89
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x43caf9
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], eax
jl 0x43cc7b
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], 0x32a831d2
mov dword [ebp - 0x38], 0x7216709e
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x24], eax
jl 0x43cc73
mov dword [ebp - 0x40], 0xfffffff8
push edi
lea ecx, [ebp - 0x604]
call fcn.0043852b
mov dword [ebp - 0x20], 0
jmp 0x43cb51
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x604]
mov dword [eax + ecx*4], 3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x43cb3e
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x44], 0x76db
cmp dword [ebp - 0x44], 0x798a
jle 0x43cb96
xor edi, edi
xor esi, esi
mov eax, esi
or eax, edi
cdq
push edx
push eax
mov ecx, 0xadaa58
call fcn.00438300
inc esi
cmp esi, 0x2622
jl 0x43cb6d
inc edi
cmp edi, 0x5f50
jl 0x43cb6b
xor edi, edi
inc edi
or esi, 0xffffffff
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setne dl
dec edx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x90]
xor ecx, ecx
cmp eax, 0x7d77fc7d
setl cl
xor eax, eax
cmp ecx, 0xf3c5
setle al
cmp eax, ebx
jbe 0x43cbe9
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x460]
inc dword [eax + 4]
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov eax, dword [ebp - 0x604]
cmp dword [eax], edi
setne cl
mov dword [ebp - 0x40], ecx
mov dword [ebp - 4], 0xc
cmp dword [ebp - 0x44], 0x744c
jge 0x43cc31
mov edx, 0xac09b0
mov ecx, 0xadaa58
call fcn.0043ab89
mov dword [ebp - 4], esi
jmp 0x43cc5e
lea ecx, [ebp - 0x604]
call fcn.004385fd
dec dword [ebp - 0x24]
xor eax, eax
jmp 0x43cb19
dec dword [ebp - 0x18]
jmp 0x43cafc
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x94]
xor ebx, ebx
test eax, eax
setne bl
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x94]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0xaf8e
setne cl
xor edx, edx
cmp ecx, 3
setg dl
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x94]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
imul edx, ebx
mov eax, dword [ebp - 0x55c]
mov dword [eax], edx
lea ecx, [ebp - 0x460]
call fcn.004385fd
dec dword [ebp - 0x28]
xor eax, eax
jmp 0x43ca18
lea ecx, [ebp - 0x55c]
call fcn.004385fd
xor eax, eax
mov byte [ebp - 0x11], al
mov dword [ebp - 0x38], 0x36e3
cmp dword [ebp - 0x38], 0x39b6
jle 0x43cd74
mov esi, eax
jmp 0x43cd1e
xor eax, eax
mov edi, eax
xor ebx, ebx
mov eax, esi
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xa4c]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xa4c]
call fcn.00438ad9
inc edi
cmp edi, 0x27c9
jl 0x43cd22
inc esi
cmp esi, 0x25be
jl 0x43cd1c
push ebx
call dword [0xade4bc]
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x38], 0x33cc
jge 0x43cd8f
push 0xac0a30
call fcn.004b1347
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x43cdb9
mov dword [ebp - 0x24], 0x256915a
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x43cdde
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xf8], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x43cdca
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43cdf1
push eax
push eax
call dword [0xade314]
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x43ce66
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43ce19
xor ebx, ebx
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0xf8], ebx
jne 0x43ce17
dec dword [ebp - 0x20]
jns 0x43ce06
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43ce61
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x43ce45
xor ebx, ebx
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0xf8], ebx
jne 0x43ce43
dec dword [ebp - 0x1c]
jns 0x43ce32
xor eax, eax
mov byte [ebp - 0x4d], al
cmp byte [ebp - 0x4d], 0
je 0x43ce5c
push eax
push 0x1f7c
call dword [0xade0f8]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x43ce21
dec dword [ebp - 0x24]
jns 0x43cdf9
cmp byte [ebp - 0x11], 0
je 0x43cf28
mov dword [ebp - 0x24], 0x256915a
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x43ce95
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x134], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x43ce81
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x43cea8
push eax
push eax
call dword [0xade314]
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], eax
jl 0x43cf1d
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43ced0
xor ebx, ebx
mov eax, dword [ebp - 0x20]
cmp dword [ebp + eax*4 - 0x134], ebx
jne 0x43cece
dec dword [ebp - 0x20]
jns 0x43cebd
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43cf18
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], eax
jl 0x43cefc
xor ebx, ebx
mov eax, dword [ebp - 0x24]
cmp dword [ebp + eax*4 - 0x134], ebx
jne 0x43cefa
dec dword [ebp - 0x1c]
jns 0x43cee9
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x43cf13
push eax
push 0x1f7c
call dword [0xade0f8]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x43ced8
dec dword [ebp - 0x24]
jns 0x43ceb0
push 0x11d7
call dword [0xade0ac]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], eax
jmp 0x43cf43
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xd18], 0xdf99
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 4
jl 0x43cf32
mov dword [ebp - 0x40], 0x47ec
cmp dword [ebp - 0x40], 0x4873
jle 0x43cfa9
push 0x1bf9
call dword [0xade480]
xor ebx, ebx
mov dword [ebp - 0x38], ebx
xor esi, esi
xor edi, edi
mov dword [ebp - 0x2c], ebx
mov ecx, esi
sar ebx, cl
mov eax, edi
xor eax, ebx
cdq
push edx
push eax
mov ecx, 0xadaa58
call fcn.00438300
inc edi
cmp edi, 0x7ee
jl 0x43cf74
inc esi
cmp esi, 0x6718
mov ebx, dword [ebp - 0x38]
jl 0x43cf6b
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, 0x583a
jl 0x43cf69
xor edi, edi
inc edi
mov dword [ebp - 0x1c], 3
xor eax, eax
cmp dword [ebp - 0x1c], eax
jl 0x43cfda
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x43cfd5
push eax
push eax
push 0x45d
push 0x1576
push eax
call dword [0xade4c8]
xor eax, eax
dec dword [ebp - 0x1c]
jns 0x43cfb7
mov dword [ebp - 4], 0x10
cmp dword [ebp - 0x40], 0x44c1
jge 0x43cff9
mov edx, 0xac0a84
mov ecx, 0xadaa58
call fcn.0043ab89
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x43d024
mov dword [ebp - 0x44], 0x220e
mov dword [ebp - 0x58], 0xac0ac4
cmp dword [ebp - 0x44], 0x25ec
jle 0x43d097
mov esi, eax
jmp 0x43d041
xor eax, eax
mov edi, eax
xor ebx, ebx
mov eax, edi
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xc50]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xc50]
call fcn.00438ad9
inc edi
cmp edi, 0x66f1
jl 0x43d045
inc esi
cmp esi, 0x663a
jl 0x43d03f
push 0x243e
call dword [0xade43c]
xor edi, edi
inc edi
jmp 0x43d099
xor ebx, ebx
mov dword [ebp - 0x18], 0xffffffe6
or esi, 0xffffffff
cmp dword [ebp - 0x18], 0x11
jl 0x43d54e
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x1c], 0x4c405b40
push 3
pop ebx
push ebx
lea ecx, [ebp - 0x478]
call fcn.0043852b
push 2
lea ecx, [ebp - 0x30c]
call fcn.0043852b
push 2
lea ecx, [ebp - 0x7d4]
call fcn.0043852b
mov dword [ebp - 0x54], 0
jmp 0x43d0fa
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0xb0], 0x7b8f5f49
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], edi
jl 0x43d0e9
mov dword [ebp - 0x54], 0
jmp 0x43d119
mov eax, dword [ebp - 0x54]
mov dword [ebp + eax*4 - 0x8d0], 4
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], ebx
jl 0x43d108
mov dword [ebp - 0x38], 0x48d1
cmp dword [ebp - 0x38], 0x4a12
jle 0x43d16f
xor edi, edi
xor esi, esi
mov eax, edi
mov ecx, esi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xadaa58
call fcn.00438300
inc esi
cmp esi, 0x4bef
jl 0x43d132
inc edi
cmp edi, 0x2d7b
jl 0x43d130
push 0x20aa
push 0x1e32
push 0x7b8
call dword [0xade4ac]
xor edi, edi
inc edi
mov dword [ebp - 0x54], 0
jmp 0x43d18b
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x478]
mov dword [eax + ecx*4], 0xc1d10227
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], ebx
jl 0x43d178
mov dword [ebp - 4], 0x12
cmp dword [ebp - 0x38], 0x47a8
jge 0x43d1af
mov edx, 0xac0adc
mov ecx, 0xadaa58
call fcn.0043ab89
or dword [ebp - 4], 0xffffffff
xor eax, eax
jmp 0x43d1da
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 2
jge 0x43d1fe
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x30c]
mov dword [eax + ecx*4], 0x2b5f7919
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 2
jl 0x43d1e3
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x43d212
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x7d4]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], 2
jl 0x43d203
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0xb0], 0
jne 0x43d24f
mov dword [ebp - 0x8c8], 0xaee5a986
mov eax, dword [ebp - 0x478]
xor ebx, ebx
mov dword [eax + 8], ebx
cmp dword [ebp - 0xb0], ebx
jg 0x43d24f
mov eax, dword [ebp - 0x30c]
cmp dword [eax], ebx
jne 0x43d24f
xor edx, edx
jmp 0x43d251
mov edx, edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
sub ecx, edx
mov eax, dword [ebp - 0x30c]
imul ecx, dword [eax]
xor eax, eax
cmp ecx, 0x47941ce3
setg al
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0x7d4]
call fcn.004385fd
lea ecx, [ebp - 0x30c]
call fcn.004385fd
lea ecx, [ebp - 0x478]
call fcn.004385fd
mov dword [ebp - 0x48], 0x5d870a32
mov dword [ebp - 0x30], 0x3be9
cmp dword [ebp - 0x30], 0x3f83
jle 0x43d328
xor ecx, ecx
mov dword [ebp - 0x24], ecx
xor edi, edi
xor esi, esi
mov dword [ebp - 0x40], esi
xor ebx, ebx
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x38], 0x6750
mov eax, esi
and eax, edi
and eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0xa7c]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xa7c]
call fcn.00438ad9
dec esi
dec dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
jne 0x43d2c6
mov esi, dword [ebp - 0x40]
inc esi
mov dword [ebp - 0x40], esi
cmp esi, 0x1896
jl 0x43d2bc
inc edi
cmp edi, 0x24d1
jl 0x43d2b5
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x2b95
jl 0x43d2b3
xor edi, edi
inc edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x30], 0x387c
jge 0x43d346
push 0xac0b44
call fcn.004b1347
pop ecx
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov dword [ebp - 0x40], 0x2cfd
cmp dword [ebp - 0x40], 0x2fdc
jle 0x43d3c5
mov esi, eax
jmp 0x43d37c
xor eax, eax
mov edi, eax
mov dword [ebp - 0x38], 0x10aa
xor ebx, ebx
mov eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xbc0]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xbc0]
call fcn.00438ad9
add edi, esi
dec dword [ebp - 0x38]
jne 0x43d387
inc esi
cmp esi, 0x6d2c
jl 0x43d37a
mov dword [ebp - 0x2c], 0x7ba96689
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x40], 0x2bae
jge 0x43d3e7
push 0xac0ba8
call fcn.004b1347
pop ecx
or esi, 0xffffffff
mov dword [ebp - 4], esi
xor eax, eax
xor edi, edi
inc edi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x24], eax
jmp 0x43d51c
mov dword [ebp - 0x28], 0x2c7c
mov dword [ebp - 0x38], 0x9dba5c12
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], edi
jge 0x43d445
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x84], 8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], edi
jl 0x43d42d
xor eax, eax
cmp dword [ebp - 0x24], eax
jne 0x43d465
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x84]
xor edx, edx
cmp ecx, eax
setge dl
xor eax, eax
cmp edx, edi
mov ecx, edi
jge 0x43d467
mov ecx, eax
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jne 0x43d4de
mov dword [ebp - 0x28], 0xffffffec
jmp 0x43d4d6
mov dword [ebp - 0x20], 0x7cc42477
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], eax
jl 0x43d4a3
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x43d49e
push eax
push 0x1785
call dword [0xade2ac]
xor eax, eax
dec dword [ebp - 0x20]
jns 0x43d487
mov dword [ebp - 0x20], eax
jmp 0x43d4ce
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], edi
jge 0x43d4cb
cmp dword [ebp - 0x20], eax
jle 0x43d4a8
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x1a
jl 0x43d478
jmp 0x43d519
mov dword [ebp - 0x34], 2
mov dword [ebp - 0x2c], 0x21ca7bc4
cmp dword [ebp - 0x24], eax
jne 0x43d50f
cmp dword [ebp - 0x28], eax
je 0x43d500
mov dword [ebp - 0x84], 0x8d92
mov dword [ebp - 0x38], 0xfffc
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
xor eax, eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 5
dec dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xfffffff5
jne 0x43d417
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x18]
shl eax, 2
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x18]
xor ebx, ebx
jmp 0x43d0a3
mov dword [ebp - 4], 0x18
cmp dword [ebp - 0x44], 0x2195
jge 0x43d567
push dword [ebp - 0x58]
call fcn.004b1347
pop ecx
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x43d593
mov dword [ebp - 0x24], 0x91a049fe
mov dword [ebp - 0x2c], 0xf1a969ac
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x43d5b7
push 0x11d7
call dword [0xade0ac]
xor eax, eax
mov dword [ebp - 0x24], 0xffffffe6
jmp 0x43d5ee
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], 0x5d870a32
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
shl eax, 2
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x24]
push 0
pop eax
cmp dword [ebp - 0x24], 0x11
jge 0x43d5c0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x34], 0xcd16652d
mov dword [ebp - 0x34], 0xedad94e8
mov dword [ebp - 0x34], 0xfffffff6
mov dword [ebp - 0x34], 0xba7c
mov dword [ebp - 0x34], 0xe99e855c
mov dword [ebp - 0x18], 0
jmp 0x43d638
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x9ec], 0xdf7cd95d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x43d627
mov dword [ebp - 0x18], 0
jmp 0x43d658
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x1bc], 8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x43d647
mov dword [ebp - 0x20], 0xfffffff7
jmp 0x43d799
mov dword [ebp - 0x24], 0xfffffff9
mov dword [ebp - 0x34], 0x7b7f609b
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x34], 0xfffffff9
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x34], 0x8cd3bed1
push edi
lea ecx, [ebp - 0x700]
call fcn.0043852b
mov dword [ebp - 0x34], 0xdc9fe9a5
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x34], 6
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x43d6d8
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x700]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x43d6c2
xor eax, eax
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x43d6f1
push 0x357
push eax
push eax
push eax
call dword [0xade290]
xor eax, eax
mov dword [ebp - 0x24], 0xfffffff0
jmp 0x43d781
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x34], 0xfffffff9
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], edi
jge 0x43d731
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x230], 0xe5e81a7e
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x43d719
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x43d747
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x94c], 0x51ae9a07
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x43d736
dec dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x230]
sub ecx, eax
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp eax, ecx
setge dl
mov dword [ebp - 0x944], edx
xor eax, eax
test edx, edx
sets al
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x24]
push 0
pop eax
cmp dword [ebp - 0x24], 0xfffffffc
jle 0x43d6fd
lea ecx, [ebp - 0x700]
call fcn.004385fd
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff1
jge 0x43d66a
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], 0xcd16652d
mov dword [ebp - 0x34], 0xedad94e8
mov dword [ebp - 0x34], 0xfffffff6
mov dword [ebp - 0x34], 0xba7c
mov dword [ebp - 0x34], 0xe99e855c
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 3
jge 0x43d7ed
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x9c8], 0xdf7cd95d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x43d7d4
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jge 0x43d80f
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x290], 8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x43d7f6
xor eax, eax
mov dword [ebp - 0x1c], 0xfffffff7
cmp dword [ebp - 0x1c], 0xfffffff1
jl 0x43d9ef
mov dword [ebp - 0x24], 0xfffffff9
mov dword [ebp - 0x34], 0x7b7f609b
mov dword [ebp - 0x34], 9
mov dword [ebp - 0x34], 0xfffffffe
mov dword [ebp - 0x34], 0xfffffff9
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x34], 0x8cd3bed1
push edi
lea ecx, [ebp - 0x780]
call fcn.0043852b
mov dword [ebp - 0x34], 0xdc9fe9a5
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x40], 0x2e4d
cmp dword [ebp - 0x40], 0x304e
jle 0x43d8b7
xor edi, edi
mov dword [ebp - 0x38], edi
xor esi, esi
mov eax, edi
cdq
idiv esi
mov ebx, edx
mov edi, 0x7da6
mov eax, ebx
cdq
push edx
push eax
mov ecx, 0xadaa58
call fcn.00438300
inc ebx
dec edi
jne 0x43d886
inc esi
cmp esi, 0xf69
mov edi, dword [ebp - 0x38]
jl 0x43d87a
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x50a
jl 0x43d878
xor edi, edi
inc edi
or esi, 0xffffffff
mov dword [ebp - 0x34], 6
mov dword [ebp - 4], 0x1a
cmp dword [ebp - 0x40], 0x2dc1
jge 0x43d8dd
mov edx, 0xac0c50
mov ecx, 0xadaa58
call fcn.0043ab89
mov dword [ebp - 4], esi
xor eax, eax
jmp 0x43d909
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], edi
jge 0x43d927
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x780]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x43d911
mov byte [ebp - 0x11], al
cmp byte [ebp - 0x11], 0
je 0x43d940
mov dword [ebp - 0x54], 0x4c965c
mov dword [ebp - 0x40], 0xfffc
mov dword [ebp - 0x2c], 0x51af7f3
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x44], 0x9753589f
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x48], 0x1f0dfbc4
mov dword [ebp - 0x1c], 0xe13c
mov dword [ebp - 0x20], 0x6983c17a
mov dword [ebp - 0x38], 0x23e1
cmp dword [ebp - 0x38], 0x2638
jle 0x43da8f
mov edi, eax
jmp 0x43da44
xor eax, eax
mov esi, eax
xor ebx, ebx
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xaac]
call fcn.00401988
pop ecx
pop ecx
mov ecx, eax
call fcn.004382f5
push eax
call fcn.004b1347
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xaac]
call fcn.00438ad9
inc esi
cmp esi, 0x3716
jl 0x43da48
inc edi
cmp edi, 0x70fe
jl 0x43da42
xor edi, edi
inc edi
mov dword [ebp - 0x24], 0
jmp 0x43daa9
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0xf4], 0xb4956e74
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x43da98
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x38], 0x21f0
jge 0x43dac9