Function at 0x49fa1b
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4bfb43
call fcn.004be948
sub esp, 0x11c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x30], ecx
xor ebx, ebx
cmp dword [ecx + 0x10], ebx
jne 0x49fa45
xor al, al
jmp 0x4a058d
mov dword [ebp - 0x28], 0x7e7f
xor esi, esi
inc esi
cmp dword [ebp - 0x28], 0x81f7
jle 0x49fadd
mov edi, ebx
mov dword [ebp - 0x14], edi
mov eax, ebx
mov dword [ebp - 0x1c], ebx
mov edx, edi
mov ecx, eax
sar edx, cl
mov dword [ebp - 0x18], edx
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
and eax, edi
xor eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xec]
call fcn.004019b1
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x49fa92
mov eax, dword [eax]
push eax
call fcn.004a91a7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xec]
call fcn.0040a8ad
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x26ba
mov edx, dword [ebp - 0x18]
jl 0x49fa76
inc edi
cmp edi, 0x4981
jl 0x49fa71
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x61a4
mov edi, dword [ebp - 0x14]
jl 0x49fa66
inc edi
mov dword [ebp - 0x14], edi
cmp edi, 0x2cb1
jl 0x49fa61
lea ecx, [ebp - 0x48]
call fcn.0049ecef
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x7e4c
jge 0x49fafc
push 0xa95eb8
call fcn.004a91a7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x49fb25
mov dword [ebp - 0x14], 0x6ef5
cmp dword [ebp - 0x14], 0x6fea
jle 0x49fba2
push ebx
call dword [0xaab4c0]
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], ebx
mov edx, edi
mov ecx, eax
sar edx, cl
mov dword [ebp - 0x20], edx
mov edi, ebx
mov ebx, dword [ebp - 0x28]
mov eax, edi
and eax, ebx
xor eax, edx
cdq
push edx
push eax
mov ecx, 0xaa82b8
call fcn.00409fb9
inc edi
cmp edi, 0xbaf
mov edx, dword [ebp - 0x20]
jl 0x49fb57
inc ebx
mov dword [ebp - 0x28], ebx
cmp ebx, 0x1b23
push 0
pop ebx
jl 0x49fb52
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x64e8
mov edi, dword [ebp - 0x1c]
jl 0x49fb46
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x13f6
jl 0x49fb41
mov dword [ebp - 4], 2
cmp dword [ebp - 0x14], 0x6b4e
jge 0x49fbc1
mov edx, 0xa95ee8
mov ecx, 0xaa82b8
call fcn.0040ca6e
or dword [ebp - 4], 0xffffffff
jmp 0x49fbea
mov dword [ebp - 0x58], 0x41e5
mov dword [ebp - 0x60], 0xf57a7c20
mov dword [ebp - 0x1c], ebx
push 3
pop edi
jmp 0x49fc0d
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x110], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x49fc00
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x60], eax
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x60]
call fcn.0049f0fc
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0x14], 0x10
jb 0x49fc30
mov ecx, dword [eax]
jmp 0x49fc32
mov ecx, eax
mov dword [ebp - 0x44], ecx
cmp dword [eax + 0x14], 0x10
jb 0x49fc3f
mov edx, dword [eax]
jmp 0x49fc41
mov edx, eax
mov eax, dword [eax + 0x10]
add eax, edx
cmp ecx, eax
je 0x4a017f
mov al, byte [ecx]
cmp al, 0x30
jl 0x49fd1b
cmp al, 0x39
jg 0x49fd1b
mov dword [ebp - 0x40], 0xfff8
mov dword [ebp - 0x18], 0x896e6a37
mov dword [ebp - 0x14], 0x188047d2
xor ecx, ecx
inc ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x28], 0xcc90
mov dword [ebp - 0x1c], ebx
jmp 0x49fca0
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x74], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x49fc96
lea ecx, [ebp - 0x40]
call fcn.0049f53c
mov eax, dword [ebp - 0x74]
inc dword [ebp - 0x74]
test eax, eax
je 0x49fccd
mov eax, dword [ebp - 0x14]
neg eax
cmp eax, 0xffff
ja 0x49fcca
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
xor esi, esi
inc esi
cmp eax, esi
setle cl
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0x40]
sub ecx, eax
mov eax, dword [ebp - 0x40]
imul eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x14], ecx
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x48]
call fcn.0049f6df
mov ecx, dword [ebp - 0x44]
inc ecx
mov eax, dword [ebp - 0x30]
jmp 0x49fc32
push edi
lea ecx, [ebp - 0x6c]
call fcn.0040a30e
mov dword [ebp - 0x14], 0xf230
mov dword [ebp - 0x24], 0x6d78
cmp dword [ebp - 0x24], 0x6e24
jle 0x49fde6
push ebx
push ebx
push 0x320
push 0x1504
call dword [0xaab418]
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov eax, edi
cdq
idiv ecx
mov dword [ebp - 0x34], edx
mov ecx, ebx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], 0x5651
mov edi, dword [ebp - 0x18]
mov eax, edi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x104]
call fcn.004019b1
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x49fd91
mov eax, dword [eax]
push eax
call fcn.004a91a7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x104]
call fcn.0040a8ad
mov ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x28]
jne 0x49fd75
mov ecx, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x584c
mov edi, dword [ebp - 0x1c]
jl 0x49fd5e
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x556c
jl 0x49fd59
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x6fd9
jl 0x49fd54
push 3
pop edi
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0x69d5
jge 0x49fe01
push 0xa95f48
call fcn.004a91a7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x49fe2a
xor edx, edx
inc edx
mov dword [ebp - 0x1c], ebx
jmp 0x49fe42
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x6c]
mov dword [eax + ecx*4], 0xb4e1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x49fe32
mov ecx, dword [ebp - 0x6c]
xor eax, eax
cmp dword [ecx + 8], edx
setl al
imul eax, dword [ecx + 8]
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
cmp eax, 0x921ded68
jne 0x49ffa4
mov eax, dword [ebp - 0x6c]
cmp dword [eax], ebx
je 0x49ffa4
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x1c], ebx
jmp 0x49fe97
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x78], 0x32f520a0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x49fe89
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0x1c
jle 0x49ff73
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x38], eax
mov edi, ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], 0xb11f3813
mov dword [ebp - 0x24], 0x515e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], ebx
je 0x49ff0e
mov edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setge cl
mov eax, 0xffff419e
sub eax, dword [edi + 8]
cmp ecx, eax
je 0x49fef7
cmp dword [ebp - 0x14], ebx
jne 0x49fef7
mov esi, ebx
xor edx, edx
inc edx
jmp 0x49fefc
xor edx, edx
inc edx
mov esi, edx
xor ecx, ecx
mov eax, dword [ebp - 0x6c]
cmp esi, dword [eax]
setl cl
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], ebx
jne 0x49ff10
mov edx, ebx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setge cl
imul ecx, dword [ebp - 0x20]
xor eax, eax
cmp ecx, 0xffffffff
setg al
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
imul eax, dword [ebp - 0x24], 0x7ff5
xor ecx, ecx
mov edx, dword [ebp - 0x38]
cmp eax, dword [edx + 4]
setg cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp ecx, eax
setle dl
sub edx, dword [ebp - 0x18]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x78], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1c
jg 0x49feb1
push 3
pop edi
mov dword [ebp - 0x1c], ebx
jmp 0x49ff9c
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x49ff8a
push ebx
push ebx
push ebx
call dword [0xaab550]
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x49ff99
call dword [fcn.00aab370]
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffe2
jg 0x49ff78
jmp 0x49ffb8
call fcn.0049f8fa
mov byte [ebp - 0x39], bl
cmp byte [ebp - 0x39], 0
je 0x49ffb8
call dword [0xaab36c]
mov dword [ebp - 0x14], ebx
jmp 0x49ffcf
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x49ffbd
lea ecx, [ebp - 0x6c]
call fcn.0040a3e0
mov eax, dword [ebp - 0x48]
mov dword [eax], ebx
mov dword [ebp - 0x18], ebx
push edi
lea ecx, [ebp - 0xa4]
call fcn.0040a30e
mov dword [ebp - 0x24], 0x4f4e7975
mov dword [ebp - 0x34], 0x2aff635
mov dword [ebp - 0x14], ebx
jmp 0x4a0017
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa4]
mov dword [eax + ecx*4], 0xcaf14c90
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4a0004
mov dword [ebp - 0x1c], 0x6368
cmp dword [ebp - 0x1c], 0x642f
jle 0x4a00ab
mov edi, ebx
mov dword [ebp - 0x28], edi
xor esi, esi
inc esi
mov dword [ebp - 0x30], ebx
mov ecx, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], 0x43ea
mov edi, ebx
mov eax, ecx
xor eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x128]
call fcn.004019b1
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4a0061
mov eax, dword [eax]
push eax
call fcn.004a91a7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x128]
call fcn.0040a8ad
inc edi
cmp edi, 0x653f
mov ecx, dword [ebp - 0x20]
jl 0x4a0045
mov eax, dword [ebp - 0x30]
add ecx, eax
mov dword [ebp - 0x20], ecx
dec dword [ebp - 0x24]
jne 0x4a0043
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x1b49
mov edi, dword [ebp - 0x28]
jl 0x4a0037
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x5fa3
jl 0x4a0034
push 3
pop edi
mov dword [ebp - 0x14], ebx
xor edx, edx
inc edx
jmp 0x4a00c1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0x123d4a1c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x4a00b3
mov dword [ebp - 4], 6
cmp dword [ebp - 0x1c], 0x6322
jge 0x4a00e4
push 0xa95f84
call fcn.004a91a7
pop ecx
xor edx, edx
inc edx
or dword [ebp - 4], 0xffffffff
jmp 0x4a0110
mov dword [ebp - 0x14], ebx
jmp 0x4a0126
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb0], 0xd0c11e04
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x4a0115
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa4]
mov dword [eax], ecx
test ecx, ecx
jne 0x4a0143
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x18]
sub edx, eax
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [ebp - 0xa8], ecx
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0xa4]
call fcn.0040a3e0
jmp 0x49fa3e
mov dword [ebp - 0x28], 0x35cc
cmp dword [ebp - 0x28], 0x37d7
jle 0x4a0203
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x30], ebx
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x34], ebx
mov eax, edi
cdq
idiv ecx
mov eax, edx
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x34]
cdq
idiv edi
mov eax, ebx
mov ecx, edx
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xaa82b8
call fcn.00409fb9
inc edi
cmp edi, 0xc06
mov eax, dword [ebp - 0x38]
jl 0x4a01af
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x193b
push 0
pop ebx
mov edi, dword [ebp - 0x30]
jl 0x4a019c
inc edi
mov dword [ebp - 0x30], edi
cmp edi, 0x61fd
jl 0x4a0197
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x38b0
jl 0x4a0192
push 3
pop edi
push esi
lea ecx, [ebp - 0x54]
call fcn.0040a30e
mov dword [ebp - 4], 8
cmp dword [ebp - 0x28], 0x3357
jge 0x4a022b
mov edx, 0xa95fc0
mov ecx, 0xaa82b8
call fcn.0040ca6e
or dword [ebp - 4], 0xffffffff
jmp 0x4a0254
xor edx, edx
inc edx
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x1c], 0xa0c0e075
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x34], 0x908cb2cc
mov dword [ebp - 0x34], 0xfea38a5b
mov dword [ebp - 0x34], 0xfffffff8
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x18], ebx
jmp 0x4a02aa
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0x730f94f3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x4a029a
mov eax, dword [ebp - 0x54]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
neg ecx
mov eax, dword [ebp - 0x54]
cmp ecx, dword [eax]
jge 0x4a02cb
cmp dword [ebp - 0x14], ebx
jne 0x4a02cd
mov edx, ebx
mov eax, dword [ebp - 0x54]
mov esi, dword [eax]
xor eax, eax
cmp edx, esi
sete al
xor ecx, ecx
cmp eax, esi
setne cl
xor edx, edx
cmp ecx, esi
setne dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, 0x53526c71
xor esi, esi
inc esi
cmp esi, ecx
sbb eax, eax
inc eax
mov edx, dword [ebp - 0x54]
xor ecx, ecx
cmp dword [edx], eax
setl cl
xor eax, eax
cmp ecx, dword [edx]
setne al
mov dword [ebp - 0x1c], eax
mov ecx, dword [edx]
mov eax, dword [ebp - 0x1c]
add eax, ecx
cmp ecx, eax
jg 0x4a03d8
xor ecx, ecx
inc ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x18], ebx
jmp 0x4a033a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd4], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4a032d
mov dword [ebp - 0x1c], 0xfffffffb
jmp 0x4a03cc
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x18], ebx
jmp 0x4a0364
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xc8], 0x674f9af3
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4a0353
mov dword [ebp - 0x14], 0xffffffe7
jmp 0x4a03a9
mov dword [ebp - 0x20], 0xfbcae26e
mov eax, dword [ebp - 0x54]
mov dword [eax], 0xe511bd77
mov eax, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0xc4], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xd
jg 0x4a0372
mov byte [ebp - 0x3a], bl
cmp byte [ebp - 0x3a], 0
je 0x4a03c9
push 0x18d5
push ebx
push ebx
push ebx
call dword [0xaab39c]
xor ecx, ecx
inc ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x12
jg 0x4a034b
jmp 0x4a03e6
mov dword [ebp - 0x38], 0xfffffffe
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0x1a
jl 0x4a0583
mov dword [ebp - 0x20], 0x72c95c8f
mov dword [ebp - 0x18], 0xedd67940
mov dword [ebp - 0x24], 0xf5726b06
mov dword [ebp - 0x38], 0x996bd0c
mov dword [ebp - 0x24], 0xd331f862
push edi
lea ecx, [ebp - 0xbc]
call fcn.0040a30e
mov dword [ebp - 0x28], 0x2be7
cmp dword [ebp - 0x28], 0x2e17
jle 0x4a0483
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov eax, esi
cdq
idiv ecx
mov esi, edx
mov eax, esi
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
mov ecx, 0xaa82b8
call fcn.00409fb9
inc edi
cmp edi, 0x5ca
jl 0x4a0445
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x72b3
mov esi, dword [ebp - 0x30]
jl 0x4a043c
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x385c
jl 0x4a0437
push 3
pop edi
mov dword [ebp - 4], 0xa
cmp dword [ebp - 0x28], 0x2af6
jge 0x4a04a2
mov edx, 0xa95fe8
mov ecx, 0xaa82b8
call fcn.0040ca6e
or dword [ebp - 4], 0xffffffff
jmp 0x4a04cb
xor edx, edx
inc edx
mov dword [ebp - 0x18], ebx
jmp 0x4a04e6
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xbc]
mov dword [eax + ecx*4], 0xdd0043bd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4a04d3
mov dword [ebp - 0x24], 0xffffffff
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xfffb
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x54]
imul eax, dword [ecx]
test eax, eax
jne 0x4a0526
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
imul eax, eax
test eax, eax
jne 0x4a0536
cmp dword [ebp - 0x38], ebx
jne 0x4a0536
mov edx, ebx
mov eax, dword [ebp - 0x20]
add eax, edx
cmp eax, dword [ebp - 0x14]
jl 0x4a0546
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setle dl
mov eax, dword [ebp - 0x38]
imul eax, edx
xor ecx, ecx
cmp eax, 0xb45d
setne cl
neg ecx
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
inc dword [ebp - 0x34]
lea ecx, [ebp - 0xbc]
call fcn.0040a3e0
inc dword [ebp - 0x14]
jmp 0x4a03e9
lea ecx, [ebp - 0x54]
call fcn.0040a3e0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret