Function at 0x453f80
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x14]
cmp dword [ebx + 0x184], 0
je 0x454f89
test dword [ebx + 0x8c], 0x100
je 0x453fca
push 0x5c4768
call fcn.00592f31
add eax, 0x40
push eax
call fcn.0059320e
add esp, 8
cmp dword [ebx + 0x1c0], 2
lea ecx, [ebx + 0x1c0]
jne 0x453ffc
push dword [ebx + 0x190]
lea eax, [ebx + 0x84]
push dword [ebx + 0x1b4]
push eax
lea eax, [ebx + 0x158]
push eax
push ecx
call fcn.004590a0
add esp, 0x14
mov ecx, dword [ebx + 0x208]
test ecx, ecx
je 0x45405f
movzx eax, word [ebx + 0x88]
mov word [ecx + 0x16], ax
mov eax, dword [ebx + 0x208]
movsx ecx, word [ebx + 0x174]
mov dword [eax + 0x18], ecx
mov eax, dword [ebx + 0x208]
movsx ecx, word [ebx + 0x176]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x208]
movzx eax, word [ebx + 0x178]
mov word [ecx + 0x22], ax
mov ecx, dword [ebx + 0x208]
mov eax, dword [ebx + 0x18c]
mov dword [ecx], eax
mov ecx, dword [ebx + 0x208]
mov eax, dword [ebx + 0x190]
mov dword [ecx + 4], eax
push dword [ebx + 0x184]
call fcn.00592c4b
mov eax, dword [ebx + 0x1b0]
add esp, 4
mov dword [ebx + 0x184], 0
test eax, eax
je 0x45408a
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1b4]
test eax, eax
je 0x45409d
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1cc]
test eax, eax
je 0x4540b0
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1f8]
test eax, eax
je 0x4540c3
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1fc]
test eax, eax
je 0x4540d6
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1c8]
test eax, eax
je 0x4540e9
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1d0]
test eax, eax
je 0x4540fc
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1d4]
test eax, eax
je 0x45410f
push eax
call fcn.00592c4b
add esp, 4
mov eax, dword [ebx + 0x1d8]
test eax, eax
je 0x454122
push eax
call fcn.00592c4b
add esp, 4
movzx edx, word [ebx + 0x172]
mov eax, 1
mov cl, dl
mov dword [ebp - 0x41c], 0x1000
shl ax, cl
mov ecx, dword [ebx + 0x208]
mov dword [ebp - 0x410], 0x4000
mov dword [ebp - 0x40c], 0x7a0
mov dword [ebp - 0x418], 0x800
mov dword [ebp - 0x414], 0x2000
push esi
movzx esi, ax
test ecx, ecx
je 0x4542d1
movzx eax, word [ebx + 0x1a0]
cmp ax, 0x50
jne 0x45419e
cmp word [ebx + 0x84], 0
mov eax, 0x40
mov edx, 0x10
cmove eax, edx
jmp 0x4542cd
cmp ax, word [ebp - 0x40c]
jne 0x45421e
mov eax, dword [ebx + 0x8c]
test eax, 0x4000000
je 0x4541be
mov eax, 0x400
jmp 0x4542cd
test eax, 0x100000
je 0x4541db
test dword [ebx + 0x160], 0xc000
je 0x4541db
mov eax, 0x400
jmp 0x4542cd
movzx eax, word [ebx + 0x84]
test ax, ax
jne 0x4541f1
mov eax, 0x20
jmp 0x4542cd
cmp ax, 1
jne 0x454201
mov eax, 0x80
jmp 0x4542cd
mov edx, 0x100
cmp ax, 3
jne 0x4542a7
mov eax, 0x200
mov word [ecx + 0xc], ax
jmp 0x4542d6
cmp ax, word [ebp - 0x418]
je 0x4542ad
cmp ax, word [ebp - 0x414]
je 0x4542ad
cmp ax, word [ebp - 0x41c]
je 0x454298
cmp ax, word [ebp - 0x410]
je 0x454298
cmp dx, 1
jne 0x454258
cmp ax, dx
je 0x454258
mov eax, 2
jmp 0x454279
test edi, edi
jne 0x454268
xor eax, eax
cmp dx, 1
setne al
inc eax
jmp 0x454279
cmp dx, 1
mov eax, 4
mov edx, 1
cmove eax, edx
mov edx, 0x100
mov word [ecx + 0xc], ax
mov ecx, edx
cmp si, dx
jg 0x45428c
movsx ecx, si
mov eax, dword [ebx + 0x208]
mov word [eax + 0x20], cx
jmp 0x4542d6
test dword [ebx + 0x8c], 0x100000
jmp 0x4541c3
mov word [ecx + 0xc], dx
jmp 0x4542d6
movzx eax, word [ebx + 0x84]
test ax, ax
jne 0x4542c4
mov edx, 0x10
mov word [ecx + 0xc], dx
jmp 0x4542d1
cmp ax, 1
mov eax, 0x40
mov word [ecx + 0xc], ax
mov edx, 0x100
mov eax, dword [ebx + 0x208]
test eax, eax
je 0x454478
movzx ecx, word [ebx + 0x1a0]
mov esi, 0x800
cmp cx, si
je 0x454428
mov esi, 0x2000
cmp cx, si
je 0x454428
mov esi, 0x4000
cmp cx, si
je 0x454428
mov esi, 0x1000
cmp cx, si
jne 0x454357
cmp word [ebx + 0x16c], 1
jle 0x454357
mov ecx, 8
mov word [eax + 0xe], cx
mov ecx, dword [ebx + 0x208]
mov ax, word [ebx + 0x16a]
mov word [ecx + 0x10], ax
mov ecx, 4
mov eax, dword [ebx + 0x208]
mov word [eax + 0x12], cx
jmp 0x454478
movzx ecx, word [eax + 0xc]
test ecx, 0x7a0
je 0x45438a
mov edx, 4
mov ecx, 8
mov word [eax + 0xe], dx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x10], cx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x12], dx
jmp 0x454478
mov esi, 1
test cl, 0x50
je 0x4543bb
mov edx, 3
mov ecx, 8
mov word [eax + 0xe], dx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x10], cx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x12], dx
jmp 0x45447d
mov word [eax + 0xe], si
movzx ecx, word [ebx + 0x172]
cmp cx, 1
jne 0x4543f3
cmp word [ebx + 0x1a0], si
je 0x4543f3
mov ecx, 8
mov eax, dword [ebx + 0x208]
mov word [eax + 0x10], cx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x12], si
jmp 0x45447d
cmp word [ebx + 0x1a0], 2
jne 0x4543da
cmp cx, 0xa
jl 0x4543da
mov eax, dword [ebx + 0x208]
mov ecx, 8
mov word [eax + 0x10], cx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x20], dx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x12], si
jmp 0x45447d
cmp word [ebx + 0x16c], 1
jne 0x454445
mov ecx, 2
mov word [eax + 0xc], cx
mov eax, dword [ebx + 0x208]
mov word [eax + 0x20], dx
mov ecx, dword [ebx + 0x208]
movzx eax, word [ebx + 0x1ac]
mov word [ecx + 0xe], ax
mov ecx, dword [ebx + 0x208]
movzx eax, word [ebx + 0x16a]
mov word [ecx + 0x10], ax
mov ecx, dword [ebx + 0x208]
movzx eax, word [ebx + 0x16c]
mov word [ecx + 0x12], ax
mov esi, 1
mov eax, dword [ebx + 0x210]
test eax, eax
je 0x454499
cmp word [eax + 0x10], 1
jne 0x454499
cmp word [eax + 0x12], 1
jne 0x454499
mov word [eax + 0x22], si
xor eax, eax
test dword [ebx + 0x160], 0x2000000
mov dword [ebp - 0x40c], eax
je 0x454536
cmp word [ebx + 0x172], 0x20
jne 0x454536
cmp byte [ebx + 0x21d], al
jne 0x454536
cmp word [ebx + 0x1a2], 4
jne 0x454536
mov eax, dword [ebx + 0x208]
xor esi, esi
cmp dword [eax + 4], esi
jle 0x454536
lea ebx, [ebx]
mov eax, dword [ebx + 0x208]
xor edx, edx
mov ecx, dword [eax + 8]
imul ecx, esi
add ecx, dword [eax + 0x28]
cmp dword [eax], edx
jle 0x45452a
jmp 0x454500
movzx eax, word [ebx + 0x84]
cmp ax, 1
je 0x454519
cmp ax, 3
je 0x454519
mov byte [ecx + 3], 0xff
jmp 0x45451c
mov byte [ecx], 0xff
mov eax, dword [ebx + 0x208]
inc edx
add ecx, 4
cmp edx, dword [eax]
jl 0x454500
mov eax, dword [ebx + 0x208]
inc esi
cmp esi, dword [eax + 4]
jl 0x4544e0
test edi, edi
je 0x454954
movzx eax, word [ebx + 0x172]
cmp ax, 8
jg 0x454954
push 0x404
lea eax, [ebp - 0x408]
push 0
push eax
call fcn.00595760
mov eax, dword [ebp + 0xc]
add esp, 0xc
movzx ecx, word [ebx + 0x172]
test al, 2
je 0x454594
mov eax, 1
shl ax, cl
movzx eax, ax
push eax
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051e070
add esp, 0xc
jmp 0x4546d7
test al, 4
je 0x4545b9
mov eax, 1
shl ax, cl
movzx eax, ax
push eax
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051e130
add esp, 0xc
jmp 0x4546d7
test al, 8
je 0x4545de
mov eax, 1
shl ax, cl
movzx eax, ax
push eax
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051e210
add esp, 0xc
jmp 0x4546d7
test al, 0x10
je 0x454626
test eax, 0x200
mov eax, 1
je 0x45460a
shl ax, cl
movzx eax, ax
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051cfa0
jmp 0x4546d4
shl ax, cl
movzx eax, ax
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051ddf0
jmp 0x4546d4
test eax, 0x800
je 0x45464e
mov eax, 1
shl ax, cl
movzx eax, ax
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051cbe0
jmp 0x4546d4
test eax, 0x400
je 0x454673
mov eax, 1
shl ax, cl
movzx eax, ax
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051df70
jmp 0x4546d4
test eax, 0x1000
je 0x454698
mov eax, 1
shl ax, cl
movzx eax, ax
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051d130
jmp 0x4546d4
test eax, 0x200
mov eax, 1
je 0x4546bd
shl ax, cl
movzx eax, ax
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051ced0
jmp 0x4546d4
shl ax, cl
movzx eax, ax
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x408]
push edi
push eax
call fcn.0051dd00
add esp, 0x10
movzx esi, word [ebx + 0x172]
cmp si, 8
jg 0x454d5e
movzx edx, word [ebx + 0x1a0]
cmp dx, 0x50
jne 0x45470c
cmp word [ebx + 0x84], 0
mov edi, 0x45c440
mov eax, 0x45c4e0
cmove edi, eax
jmp 0x454753
mov edi, 0x7a0
cmp dx, di
jne 0x45475e
movzx eax, word [ebx + 0x84]
test ax, ax
jne 0x45472f
mov eax, 0x45c490
mov dword [ebp - 0x40c], eax
jmp 0x45475e
cmp ax, 1
jne 0x454742
mov eax, 0x45c340
mov dword [ebp - 0x40c], eax
jmp 0x45475e
cmp ax, 3
mov edi, 0x45c3f0
mov ecx, 0x45c3a0
cmove edi, ecx
mov dword [ebp - 0x40c], edi
mov edi, 0x7a0
mov ah, byte [ebp - 0x208]
mov al, byte [ebp - 0x308]
mov ch, byte [ebp - 0x407]
mov cl, byte [ebp - 0x408]
cmp si, 1
jne 0x454859
cmp dx, 0x50
je 0x4547dd
cmp dx, di
je 0x4547dd
test cl, cl
jne 0x4547ac
test al, al
jne 0x4547cd
test ah, ah
jne 0x4547cd
cmp ch, 0xff
jne 0x4547cd
cmp byte [ebp - 0x307], ch
jne 0x4547cd
cmp byte [ebp - 0x207], ch
jmp 0x4547cb
cmp cl, 0xff
jne 0x4547cd
cmp al, cl
jne 0x4547cd
cmp ah, cl
jne 0x4547cd
test ch, ch
jne 0x4547cd
cmp byte [ebp - 0x307], ch
jne 0x4547cd
cmp byte [ebp - 0x207], ch
je 0x4547dd
push dword [ebx + 0x208]
call fcn.00455020
add esp, 4
jmp 0x454853
cmp si, 1
jne 0x454859
cmp dx, si
je 0x454859
test cl, cl
jne 0x45480b
test al, al
jne 0x454859
test ah, ah
jne 0x454859
cmp ch, 0xff
jne 0x454859
cmp byte [ebp - 0x307], ch
jne 0x454859
cmp byte [ebp - 0x207], ch
je 0x45482c
jmp 0x454859
cmp cl, 0xff
jne 0x454859
cmp al, cl
jne 0x454859
cmp ah, cl
jne 0x454859
test ch, ch
jne 0x454859
cmp byte [ebp - 0x307], ch
jne 0x454859
cmp byte [ebp - 0x207], ch
jne 0x454859
cmp word [ebx + 0x84], 0
push dword [ebx + 0x208]
jne 0x454843
call fcn.00455120
jmp 0x454848
call fcn.00455180
add esp, 4
xor eax, eax
mov dword [ebp - 0x40c], eax
mov cl, byte [ebp - 0x408]
mov esi, dword [ebx + 0x208]
cmp word [esi + 0xc], 4
jne 0x454894
push 0x404
push 1
call fcn.00592c0b
mov dword [esi + 0x24], eax
mov ecx, 0x101
mov edi, dword [ebx + 0x208]
lea esi, [ebp - 0x408]
add esp, 8
mov edi, dword [edi + 0x24]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [ebp - 0x408]
mov eax, dword [ebx + 0x208]
cmp word [eax + 0xc], 1
jne 0x4548ea
test cl, cl
je 0x4548ea
xor edi, edi
cmp dword [ebx + 0x190], edi
jle 0x4548ea
nop
mov ecx, dword [ebx + 0x1a8]
xor esi, esi
mov eax, dword [ebx + 0x208]
mov edx, ecx
imul edx, edi
add edx, dword [eax + 0x28]
test ecx, ecx
jle 0x4548e1
lea ebx, [ebx]
not byte [edx]
lea edx, [edx + 1]
inc esi
movsx eax, si
cmp eax, dword [ebx + 0x1a8]
jl 0x4548d0
inc edi
cmp edi, dword [ebx + 0x190]
jl 0x4548b0
mov edx, dword [ebp - 0x40c]
test edx, edx
je 0x454d5e
mov eax, dword [ebx + 0x208]
lea edi, [ebx + 0x158]
xor esi, esi
mov eax, dword [eax]
mov dword [edi], eax
cmp dword [ebx + 0x190], esi
jle 0x454d5e
jmp 0x454920
mov ecx, dword [ebx + 0x1a8]
mov eax, dword [ebx + 0x208]
imul ecx, esi
push edi
add ecx, dword [eax + 0x28]
lea eax, [ebp - 0x408]
push ecx
push eax
call edx
mov edx, dword [ebp - 0x40c]
inc esi
add esp, 0xc
cmp esi, dword [ebx + 0x190]
jl 0x454920
jmp 0x454d5e
mov ecx, dword [ebx + 0x160]
test ecx, 0x60000
je 0x45497d
mov eax, dword [ebx + 0x208]
cmp word [eax + 0xe], 3
jb 0x45497d
push ebx
call fcn.00453090
add esp, 4
jmp 0x454d5e
test ecx, 0x180000
je 0x4549a0
mov eax, dword [ebx + 0x208]
cmp word [eax + 0xe], 3
jb 0x4549a0
push ebx
call fcn.004532a0
add esp, 4
jmp 0x454d5e
mov esi, ecx
and esi, 0x4000
jne 0x4549b6
test ecx, 0x8000
je 0x454a65
mov edi, dword [ebx + 0x208]
mov edx, 0x400
cmp word [edi + 0xc], dx
je 0x454a6a
test byte [ebx + 0x134], 1
je 0x454a0c
push dword [ebx + 0x228]
call fcn.0045ba30
add esp, 4
test eax, eax
je 0x454a0c
cmp word [edi + 0xe], 4
jne 0x4549fa
push esi
push eax
push ebx
call fcn.00452dc0
add esp, 0xc
jmp 0x454a04
push eax
push ebx
call fcn.004529a0
add esp, 8
test eax, eax
jne 0x454d5e
test dword [ebx + 0x160], 0x8000
mov eax, dword [ebx + 0x208]
je 0x454a37
cmp word [eax + 0xe], 4
jne 0x454d5e
push ebx
call fcn.00452be0
add esp, 4
jmp 0x454d5e
movzx eax, word [eax + 0xe]
cmp eax, 4
jne 0x454a4e
push ebx
call fcn.00452f20
add esp, 4
jmp 0x454d5e
cmp eax, 3
jne 0x454d5e
push ebx
call fcn.00452af0
add esp, 4
jmp 0x454d5e
mov edx, 0x400
test esi, esi
je 0x454aea
mov eax, dword [ebx + 0x208]
cmp word [eax + 0xc], dx
jne 0x454aea
cmp word [eax + 0xe], 4
jne 0x454aea
xor esi, esi
cmp dword [ebx + 0x190], esi
jle 0x454d5e
mov eax, dword [ebx + 0x208]
xor edx, edx
mov ecx, dword [eax + 8]
imul ecx, esi
add ecx, dword [eax + 0x28]
cmp dword [ebx + 0x18c], edx
jle 0x454adc
lea esp, [esp]
or al, 0xff
lea ecx, [ecx + 4]
sub al, byte [ecx - 4]
inc edx
mov byte [ecx - 4], al
or al, 0xff
sub al, byte [ecx - 3]
mov byte [ecx - 3], al
or al, 0xff
sub al, byte [ecx - 2]
mov byte [ecx - 2], al
or al, 0xff
sub al, byte [ecx - 1]
mov byte [ecx - 1], al
cmp edx, dword [ebx + 0x18c]
jl 0x454ab0
inc esi
cmp esi, dword [ebx + 0x190]
jl 0x454a93
jmp 0x454d5e
test ecx, 0x8000
je 0x454b0c
mov eax, dword [ebx + 0x208]
cmp word [eax + 0xc], dx
je 0x454b0c
push ebx
call fcn.00452be0
add esp, 4
jmp 0x454d5e
test ecx, 0xc000
jne 0x454b87
mov eax, dword [ebx + 0x208]
cmp word [eax + 0xc], dx
jne 0x454b87
movzx eax, word [ebx + 0x134]
test al, 2
je 0x454b52
test byte [ebx + 0x148], 1
jne 0x454b52
push dword [ebx + 0x228]
call fcn.0045ba30
add esp, 4
test eax, eax
je 0x454b58
push eax
push ebx
call fcn.00453600
jmp 0x454d5b
mov eax, dword [ebp - 0x410]
movzx ecx, word [ebx + 0x134]
test cl, 1
je 0x454b79
cmp dword [ebx + 0x12c], 0
je 0x454b79
push eax
push ebx
call fcn.00453600
jmp 0x454d5b
push ebx
call fcn.004534b0
add esp, 4
jmp 0x454d5e
movzx edx, word [ebx + 0x172]
cmp dx, 8
jg 0x454d0d
movzx ecx, word [ebx + 0x1a0]
cmp cx, 0x50
jne 0x454bbc
cmp word [ebx + 0x84], 0
mov esi, 0x45c5e0
mov eax, 0x45c640
cmove esi, eax
jmp 0x454c03
mov eax, 0x7a0
cmp cx, ax
jne 0x454c09
movzx eax, word [ebx + 0x84]
test ax, ax
jne 0x454bdf
mov eax, 0x45c610
mov dword [ebp - 0x40c], eax
jmp 0x454c09
cmp ax, 1
jne 0x454bf2
mov eax, 0x45c530
mov dword [ebp - 0x40c], eax
jmp 0x454c09
cmp ax, 3
mov esi, 0x45c5b0
mov edi, 0x45c570
cmove esi, edi
mov dword [ebp - 0x40c], esi
test byte [ebp + 0xc], 1
je 0x454cd6
mov eax, dword [ebx + 0x208]
cmp word [eax + 0xc], 1
jne 0x454c6c
xor edi, edi
cmp dword [ebx + 0x190], edi
jle 0x4548ea
mov edi, edi
mov ecx, dword [ebx + 0x1a8]
xor esi, esi
mov eax, dword [ebx + 0x208]
mov edx, ecx
imul edx, edi
add edx, dword [eax + 0x28]
test ecx, ecx
jle 0x454c5e
lea ebx, [ebx]
not byte [edx]
lea edx, [edx + 1]
inc esi
cmp esi, dword [ebx + 0x1a8]
jl 0x454c50
inc edi
cmp edi, dword [ebx + 0x190]
jl 0x454c30
jmp 0x4548ea
mov eax, 1
mov cl, dl
shl eax, cl
xor esi, esi
dec eax
mov dword [ebp - 0x410], eax
cmp dword [ebx + 0x190], esi
jle 0x4548ea
lea ebx, [ebx]
mov ecx, dword [ebx + 0x1a8]
xor edx, edx
mov eax, dword [ebx + 0x208]
imul ecx, esi
add ecx, dword [eax + 0x28]
cmp dword [ebx + 0x18c], edx
jle 0x454cc8
lea esp, [esp]
mov al, byte [ebp - 0x410]
lea ecx, [ecx + 1]
sub al, byte [ecx - 1]
inc edx
mov byte [ecx - 1], al
cmp edx, dword [ebx + 0x18c]
jl 0x454cb0
inc esi
cmp esi, dword [ebx + 0x190]
jl 0x454c90
jmp 0x4548ea
cmp dx, 1
jne 0x4548ea
cmp cx, dx
je 0x4548ea
cmp word [ebx + 0x84], 0
push dword [ebx + 0x208]
jne 0x454d03
call fcn.00455120
add esp, 4
jmp 0x454d5e
call fcn.00455180
add esp, 4
jmp 0x454d5e
mov si, word [ebx + 0x134]
and si, 2
je 0x454d37
test byte [ebx + 0x148], 1
jne 0x454d37
push dword [ebx + 0x228]
call fcn.0045ba30
add esp, 4
test eax, eax
je 0x454d3d
jmp 0x454d54
mov eax, dword [ebp - 0x410]
test si, si
je 0x454d5e
test byte [ebx + 0x148], 1
jne 0x454d5e
cmp byte [ebx + 0x136], 1
jb 0x454d5e
push eax
push ebx
call fcn.00453780
add esp, 8
mov eax, dword [ebx + 0x1c0]
cmp eax, 3
jne 0x454df7
test dword [ebx + 0x8c], 0x8000000
mov edi, dword [ebx + 0x15c]
je 0x454da4
movzx ecx, word [ebx + 0x176]
movzx eax, word [ebx + 0x174]
cmp ax, cx
je 0x454da4
cmp ax, 0x32
jle 0x454da4
cwde
imul eax, edi
movsx ecx, cx
cdq
idiv ecx
mov edi, eax
mov esi, dword [ebx + 0xa0]
mov eax, esi
imul eax, edi
mov ecx, dword [ebx + 0xa4]
cdq
idiv dword [ebx + 0x158]
cmp eax, ecx
jg 0x454dc4
mov ecx, eax
jmp 0x454dd2
mov eax, ecx
imul eax, dword [ebx + 0x158]
cdq
idiv edi
mov esi, eax
test esi, esi
mov eax, 1
push 0
cmovle esi, eax
test ecx, ecx
cmovle ecx, eax
push ecx
push esi
push 0
push dword [ebx + 0x208]
call fcn.00460040
jmp 0x454e98
cmp eax, 4
jne 0x454e9b
test dword [ebx + 0x8c], 0x8000000
mov edi, dword [ebx + 0x15c]
je 0x454e37
movzx ecx, word [ebx + 0x176]
movzx eax, word [ebx + 0x174]
cmp ax, cx
je 0x454e37
cmp ax, 0x32
jle 0x454e37
cwde
imul eax, edi
movsx ecx, cx
cdq
idiv ecx
mov edi, eax
mov esi, dword [ebx + 0xa0]
mov eax, esi
imul eax, edi
mov ecx, dword [ebx + 0xa4]
cdq
idiv dword [ebx + 0x158]
cmp eax, ecx
jg 0x454e57
mov ecx, eax
jmp 0x454e65
mov eax, ecx
imul eax, dword [ebx + 0x158]
cdq
idiv edi
mov esi, eax
test esi, esi
mov eax, 1
mov edx, 0x40
cmovle esi, eax
test ecx, ecx
cmovle ecx, eax
cmp word [ebx + 0x84], ax
mov eax, 0x10
cmove eax, edx
push eax
push ecx
push esi
push 0
push dword [ebx + 0x208]
call fcn.0045ee10
add esp, 0x14
cmp word [ebx + 0x88], 0
jne 0x454f88
cmp dword [ebx + 0xe0], 0
jne 0x454f88
movzx eax, word [ebx + 0x168]
mov ecx, 0x81
cmp ax, cx
je 0x454f2b
mov ecx, 0x90
cmp ax, cx
je 0x454f2b
mov ecx, 0x91
cmp ax, cx
je 0x454ee9
mov ecx, 0x80
cmp ax, cx
jne 0x454f88
push 0
push 0
push dword [ebx + 0x208]
call fcn.0057d640
add esp, 0xc
test ax, ax
jne 0x454f88
mov eax, dword [ebx + 0x210]
test eax, eax
je 0x454f1b
mov esi, dword [eax + 8]
push 0
push 0
push 0
push 0xffffffffffffffa6
jmp 0x454f5f
mov esi, dword [ebp - 0x410]
push 0
push 0
push 0
push 0xffffffffffffffa6
jmp 0x454f5f
push 0
push 0
push dword [ebx + 0x208]
call fcn.0057d640
add esp, 0xc
test ax, ax
jne 0x454f88
mov eax, dword [ebx + 0x210]
test eax, eax
je 0x454f51
mov esi, dword [eax + 8]
jmp 0x454f57
mov esi, dword [ebp - 0x410]
push 0
push 0
push 0
push 0x5a
push 0
push dword [ebx + 0x208]
call fcn.0057ef90
mov ecx, dword [ebx + 0x210]
add esp, 0x18
test ecx, ecx
je 0x454f88
mov eax, dword [ecx + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x210]
mov dword [eax + 0xc], esi
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret