Function at 0x453b00
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x54
push ebx
push ebp
mov ebx, dword [esp + 0x74]
push esi
mov esi, dword [esp + 0x64]
mov ebp, ecx
push edi
mov edi, dword [esp + 0x70]
mov al, byte [esi + 0x30]
mov dword [esp + 0x1c], ebp
cmp al, 0x40
jne 0x453b53
mov ecx, dword [edi + 0x94]
mov edx, dword [edi + 0x44]
add ecx, edx
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [esi + 0x38]
shr edx, 4
add edx, ecx
mov ecx, ebx
push edx
call fcn.0042d5a0
test eax, eax
jne 0x453b53
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x54
ret 0x28
mov eax, dword [esp + 0x78]
mov ecx, ebp
movsx edx, word [eax + 2]
movsx eax, word [eax]
push edx
push eax
call fcn.00447330
cmp eax, 0x16
jne 0x453b86
push 0
push 0
push 0x7e
mov ecx, ebx
call fcn.0043fc10
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x54
ret 0x28
movsx eax, word [esi + 0x28]
mov ebp, dword [esp + 0x88]
mov ecx, dword [esp + 0x6c]
sub eax, 0x2710
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], eax
mov al, byte [esi + 0x30]
cmp al, 0x35
jne 0x453c14
mov ax, word [ecx + 0x852]
mov edx, eax
and edx, 0x100
test dx, dx
je 0x453bde
push 0
push 0
push 0x11e
mov ecx, ebx
call fcn.0043fc10
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x54
ret 0x28
or ah, 1
mov word [ecx + 0x852], ax
mov edx, dword [edi + 0x94]
mov eax, dword [edi + 0x44]
mov edi, dword [esi + 0x38]
add edx, eax
mov eax, 0x51eb851f
mul edx
shr edx, 4
add edx, edi
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ecx + 0x938], eax
mov edx, dword [esp + 0x8c]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x453db3
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0x35]
mov edx, ecx
mov esi, edi
mov edi, ebx
lea eax, [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
lea edx, [esp + 0x38]
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
lea ecx, [esp + 0x30]
push ecx
push edx
lea ecx, [esi + 0x31dc]
call fcn.00488210
test eax, eax
jne 0x453c9e
lea eax, [esp + 0x20]
lea ecx, [esp + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x32c8]
lea edx, [esp + 0x3c]
push edx
add ecx, 0x40
call fcn.0040a290
test eax, eax
jne 0x453c9e
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x54
ret 0x28
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x2c]
movsx ecx, word [esp + 0x2e]
mov di, word [esi + 2]
mov si, word [esi]
movsx eax, di
sub eax, ecx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
movsx eax, si
movsx edx, bx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
mov dword [esp + 0x8c], eax
jg 0x453cdd
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x78]
mov ax, word [esp + 0x30]
mov dl, byte [ecx + 4]
cmp dl, al
je 0x453d14
test dl, dl
jne 0x453cfd
cmp bx, si
jle 0x453cfd
cmp word [esp + 0x2e], di
jg 0x453d0d
test al, al
jne 0x453d14
cmp si, bx
jle 0x453d14
cmp di, word [esp + 0x2e]
jle 0x453d14
mov edx, 1
jmp 0x453d16
xor edx, edx
mov esi, dword [esp + 0x8c]
add esi, edx
mov edx, dword [esp + 0x18]
cmp esi, edx
jle 0x453d46
mov ecx, dword [esp + 0x7c]
push 0
push 0
push 0x120
call fcn.0043fc10
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x54
ret 0x28
mov dword [ecx], ebx
mov word [ecx + 4], ax
movsx eax, word [esp + 0x84]
cmp eax, 0x176
jg 0x453d7c
je 0x453d6b
cmp eax, 0x46
je 0x453d9a
cmp eax, 0x15f
je 0x453d9a
jmp 0x453d83
mov eax, edx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esp + 0x18], eax
jmp 0x453db3
cmp eax, 0x17d
je 0x453d9a
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
jmp 0x453daf
mov edx, dword [esp + 0x18]
mov eax, 0x55555556
lea ecx, [edx + edx]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x28], 1
push ecx
mov ecx, dword [esp + 0x80]
call fcn.004396e0
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x10]
lea eax, [esp + 0x2c]
push edx
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x84]
push eax
lea eax, [esp + 0x34]
push edx
lea ecx, [edi + 0x31dc]
push eax
call fcn.00488600
mov ebx, dword [esp + 0x70]
test eax, eax
je 0x454340
mov esi, dword [esp + 0x78]
lea ecx, [esp + 0x2c]
push ecx
push esi
lea ecx, [edi + 0x323c]
call fcn.00486030
test eax, eax
je 0x45430f
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x37d8]
lea esi, [eax + 0x42d0]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x8c], esi
mov al, byte [ecx + 0x24]
test al, al
jl 0x45430f
cmp al, 9
jg 0x45430f
movsx edx, word [esp + 0x2e]
movsx eax, word [esp + 0x2c]
push edx
push eax
mov ecx, edi
call fcn.00447330
cmp eax, 0x16
je 0x45430f
mov eax, dword [esi + 0x60]
test eax, eax
je 0x45430f
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x43a4], 1
jne 0x45430f
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x1c]
push 1
mov ecx, edi
mov eax, dword [edx + 0xaf0]
push eax
call fcn.004644b0
mov ecx, dword [esp + 0x70]
push 1
mov esi, eax
mov edx, dword [ecx + 0xaf0]
mov ecx, edi
push edx
call fcn.004644b0
mov edx, dword [esp + 0x6c]
mov edi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0xaf0]
mov eax, dword [edx + 0xaf0]
push ecx
mov ecx, dword [esp + 0x20]
push eax
call fcn.004646c0
cmp esi, edi
jne 0x45430f
cmp esi, 1
jne 0x453ef9
cmp edi, esi
jne 0x453ef9
test eax, eax
je 0x45430f
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x21b0]
mov ecx, dword [esp + 0x10]
test eax, eax
jle 0x453f17
cmp eax, dword [ecx + 0x21b0]
jne 0x45430f
call dword [sym.imp.rm3944.dll_NewUseSkillRangeEffect]
nop
nop
dec eax
cmp eax, 0x3f
ja case.0x453f31.9
xor edx, edx
mov dl, byte [eax + 0x4545c0]
jmp dword [edx*4 + 0x45459c]
cmp dword [ecx + 0x43a4], 2
je case.0x453f31.9
mov eax, dword [esp + 0x68]
push 0
mov edx, dword [eax + 0x34]
mov eax, 0x51eb851f
imul edx, dword [esp + 0x84]
mul edx
shr edx, 5
push edx
call fcn.00439140
mov eax, dword [ebx + 0x94]
mov ecx, dword [ebx + 0x44]
add ecx, eax
cmp ecx, 0x3e8
jb case.0x453f31.9
mov eax, 0x10624dd3
mul ecx
shr edx, 6
cmp edx, 0x32
mov ecx, 0x32
ja 0x453f93
mov ecx, edx
mov edx, dword [esp + 0x8c]
mov eax, 0x51eb851f
push 0x32
mul dword [edx + 8]
shr edx, 5
imul edx, ecx
mov ecx, dword [esp + 0x14]
push edx
call fcn.004391c0
jmp case.0x453f31.9
cmp dword [ecx + 0x43a4], 2
je case.0x453f31.9
push ebp
call fcn.0042e6f0
jmp case.0x453f31.9
cmp dword [ecx + 0x43a4], 2
je case.0x453f31.9
mov esi, dword [ebx + 0x94]
mov eax, 0x51eb851f
mul esi
shr edx, 6
add edx, 0x19
cmp edx, 0x32
jbe 0x453ffb
mov edx, 0x32
mov eax, 0x64
push 0
sub eax, edx
mov edx, dword [ebx + 0x44]
push 0
push eax
add edx, esi
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x74]
shr edx, 4
add edx, dword [eax + 0x38]
push edx
push 8
call fcn.0042b2d0
or byte [ebp + 0x1b], 1
jmp case.0x453f31.9
mov eax, dword [ecx + 0x43a4]
mov esi, 2
cmp eax, esi
je case.0x453f31.9
mov eax, dword [ebx + 0x94]
mov edx, dword [ebx + 0x44]
push 0
push 0
push eax
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x74]
shr edx, 4
add edx, dword [eax + 0x38]
push edx
push 0x11
call fcn.0042b2d0
or word [ebp + 0x1c], si
mov esi, dword [esp + 0x70]
mov dword [esi + 0x7a4], 0x7d0
mov ecx, dword [esp + 0x10]
call fcn.00439f10
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x14]
mov dword [esi + 0x7a8], edx
mov ecx, dword [esp + 0x10]
call fcn.00439d10
jmp case.0x453f31.9
cmp dword [ecx + 0x43a4], 2
je case.0x453f31.9
mov edx, dword [ebx + 0x94]
mov esi, dword [ebx + 0x44]
add edx, esi
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x68]
push 0
shr edx, 4
mov edi, dword [eax + 0x38]
push 0
add edx, edi
push 0
push edx
push 0x19
call fcn.0042b2d0
or byte [ebp + 0x1d], 2
jmp case.0x453f31.9
cmp dword [ecx + 0x43a4], 2
je case.0x453f31.9
mov esi, dword [ebx + 0x94]
mov eax, 0x51eb851f
mul esi
shr edx, 6
add edx, 0x19
cmp edx, 0x32
jbe 0x45410f
mov edx, 0x32
mov eax, 0x64
push 0
sub eax, edx
mov edx, dword [ebx + 0x44]
push esi
push eax
add edx, esi
mov eax, 0x51eb851f
mul edx
mov eax, dword [esp + 0x74]
shr edx, 4
add edx, dword [eax + 0x38]
push edx
push 0x2a
call fcn.0042b2d0
test eax, eax
je case.0x453f31.9
mov ecx, dword [esp + 0x10]
push ebp
call fcn.0042e6f0
mov esi, dword [esp + 0x70]
mov dword [esi + 0x7a4], 0x7d0
mov ecx, dword [esp + 0x10]
call fcn.00439f10
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 0x14]
mov dword [esi + 0x7a8], edx
mov ecx, dword [esp + 0x10]
call fcn.00439d10
or byte [ebp + 0x1f], 4
jmp case.0x453f31.9
cmp dword [ecx + 0x43a4], 2
je case.0x453f31.9
mov eax, dword [esp + 0x74]
lea esi, [ebp + 1]
lea edi, [eax + 1]
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x4541be
test al, al
je 0x4541ba
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x4541be
add esi, 2
add edi, 2
test al, al
jne 0x45419a
xor eax, eax
jmp 0x4541c3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x453f31.9
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x42d8]
nop
nop
nop
nop
push 0
push edx
call fcn.00439140
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x42e0]
nop
nop
nop
nop
nop
nop
nop
nop
push edx
call fcn.004396a0
jmp case.0x453f31.9
cmp dword [ecx + 0x43a4], 2
je case.0x453f31.9
mov dl, byte [ebp + 0x1a]
and dl, 8
cmp dl, 8
jne 0x454224
push 1
push 0
push 3
call fcn.0042cb70
and word [ebp + 0x1a], 0xfff7
mov ecx, dword [esp + 0x10]
mov edx, dword [ebx + 0x94]
mov esi, dword [ebx + 0x44]
add edx, esi
mov eax, 0xcccccccd
mul edx
mov eax, dword [esp + 0x68]
push 0
shr edx, 4
mov edi, dword [eax + 0x38]
push 0
add edx, edi
push 0
push edx
push 0x35
call fcn.0042b2d0
or byte [ebp + 0x20], 0x20
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
mov ecx, dword [ecx + 0x79c]
mov esi, dword [edx + 8]
add edi, 0x2f
cmp ecx, esi
mov dword [esp + 0x14], edi
jb 0x454285
mov eax, dword [esp + 0x88]
mov byte [edi + eax - 1], 0x64
jmp 0x4542d2
cmp ecx, 0x1312d00
jbe 0x4542aa
mov eax, 0x51eb851f
mul esi
mov esi, edx
mov eax, ecx
shr esi, 5
xor edx, edx
div esi
cmp al, 0x64
jae 0x4542c2
and eax, 0xff
jmp 0x4542c7
lea eax, [ecx + ecx*4]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div esi
cmp al, 0x64
jae 0x4542c2
and eax, 0xff
jmp 0x4542c7
mov eax, 0x64
mov ecx, dword [esp + 0x88]
mov byte [edi + ecx - 1], al
add ebp, 0x2f
cmp edi, 0x582
jb 0x45430f
mov ebp, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
push 0x582
push ebp
push edx
push eax
push ecx
mov ecx, dword [esp + 0x30]
call fcn.0045f9b0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x10]
lea eax, [esp + 0x2c]
push edx
push eax
push ebp
push ecx
lea edx, [esp + 0x34]
push esi
push edx
lea ecx, [edi + 0x31dc]
call fcn.00488700
test eax, eax
jne 0x453e12
push 0xffffffffffffffff
mov ecx, edi
call fcn.00464990
mov esi, eax
mov eax, dword [esp + 0x68]
mov al, byte [eax + 0x30]
cmp al, 1
je 0x45435e
cmp al, 0x3e
jne 0x454571
test esi, esi
jle 0x454571
cmp esi, 0x28
jg 0x454571
mov ecx, edi
call fcn.004445a0
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax + 0x18]
push esi
mov edx, dword [ecx + 0xaf0]
mov ecx, eax
push edx
call dword [sym.imp.rmDB.dll_public:_int___thiscall_CArmy::IsAgitOwner_int__int_]
cmp eax, 1
jne 0x454571
mov eax, dword [edi + 0x32c8]
lea edx, [esp + 0x20]
mov esi, dword [esp + 0x78]
push edx
lea edx, [esp + 0x30]
lea ecx, [eax + 0x40]
push edx
mov edx, dword [esp + 0x20]
mov eax, dword [ecx]
push ebp
push edx
lea edx, [esp + 0x34]
push esi
push edx
call dword [eax + 0x44]
test eax, eax
je 0x454571
lea eax, [esp + 0x2c]
lea ecx, [edi + 0x323c]
push eax
push esi
call fcn.00486030
test eax, eax
je 0x454541
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x174]
test eax, eax
jne 0x454541
cmp word [ebp + 0x12], 0x56
jne 0x454541
cmp byte [ecx + 0xec], 3
jne 0x454410
mov eax, dword [ebx + 0x70]
test eax, eax
je 0x454541
mov edx, dword [esp + 0x68]
movsx eax, byte [edx + 0x30]
dec eax
je 0x45444c
sub eax, 0x3d
jne 0x454489
mov eax, dword [ecx + 0x16c]
test eax, eax
jne 0x454489
mov edx, dword [ebx + 8]
mov eax, 0xaaaaaaab
shl edx, 1
mul edx
mov eax, dword [ecx + 0x120]
shr edx, 1
add eax, edx
mov edx, dword [ecx + 0x2bc]
cmp eax, edx
jb 0x45447f
jmp 0x45447d
mov eax, dword [ecx + 0x16c]
test eax, eax
jne 0x454489
mov edx, dword [edx + 0x34]
mov eax, 0x51eb851f
imul edx, dword [esp + 0x80]
mul edx
mov eax, dword [ecx + 0x120]
shr edx, 5
add eax, edx
mov edx, dword [ecx + 0x2bc]
cmp eax, edx
jb 0x45447f
mov eax, edx
mov dword [ecx + 0x120], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov esi, dword [ecx + 0x120]
mov ecx, dword [ecx + 0x2bc]
add edx, 0x2f
cmp esi, ecx
mov dword [esp + 0x14], edx
jb 0x4544b2
mov ecx, dword [esp + 0x88]
mov byte [edx + ecx - 1], 0x64
jmp 0x454503
cmp esi, 0x1312d00
jbe 0x4544d7
mov eax, 0x51eb851f
mul ecx
mov ecx, edx
mov eax, esi
shr ecx, 5
xor edx, edx
div ecx
cmp al, 0x64
jae 0x4544ef
and eax, 0xff
jmp 0x4544f4
lea eax, [esi + esi*4]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div ecx
cmp al, 0x64
jae 0x4544ef
and eax, 0xff
jmp 0x4544f4
mov eax, 0x64
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x88]
mov byte [edx + ecx - 1], al
mov eax, dword [esp + 0x14]
add ebp, 0x2f
cmp eax, 0x582
jb 0x454541
mov ebp, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
push 0x582
push ebp
push edx
push eax
push ecx
mov ecx, edi
call fcn.0045f9b0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x32c8]
mov esi, dword [esp + 0x78]
lea ecx, [eax + 0x40]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x30]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x20]
push ebp
push eax
lea eax, [esp + 0x34]
push esi
push eax
call dword [edx + 0x48]
test eax, eax
jne 0x4543c6
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x45458e
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x45458e
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x54
ret 0x28
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 0x28